MongoDB 集群搭建(主从复制、副本及)(五)
六:架构管理
mongodb的主从集群分为两种:
1:master-Slave 复制(主从) --从server不会主动变成主server,须要设置才行
2:replica Sets 复制(副本集) --假设主server挂掉,会选举出一台从server当主server
一:主从复制
mongodb支持在多个机器中通过异步复制达到故障转移和实现冗余。
多机器中统一时刻仅仅有一台是用于写操作。正是因为这个情况,为mongodb提供了数据一致性的保障。
担当primary角色的机器能把读操作分发给slave。
一主一从 一主多从方式
仅仅须要在某一个server启动时加上-master參数,而另外一个server加上-slave与-source參数,就可以实现同步。
mongodb的最新版本号已不推荐使用这样的方法 。
開始模拟(直接开玩得,没实用户验证):
1:打开2个终端(安装2台mongodb数据库)
*--你能够再你同一台电脑上模拟。可是把dbpath logpath,相应的文件夹建上即可
mongodb/ 下创建文件就(仅仅须要打开2个终端链接即可,不用安装多个mongodb数据库)
bin(mongodb自带的文件) data1 data2 dblog1 dblog2 --1是主服务用的文件 2是从server用的文件
2:主(设置一台主server)
./mongod --master --dbpath=/usr/local/mongodb/data1/ --logpath=/usr/local/mongodb/dblog1 --fork --port 20001 (port开启一个相应的端口)
3:从 --source表示“源” ,链接那台server和port
./mongod --slave --source 127.0.0.100:20001 --dbpath=/usr/local/mongodb/data2/ --logpath=/usr/local/mongodb/dblog2 --fork --port 20002
从:./mongo --port 20002
4: 主:./mongo --port 20001
db.c1.insert({name:"user1"});
db.c1.insert({name:"user2"});
5:从:会发现主创建的c1集合已经过来了
db.c1.find();
db.c1.insert({name:"user3"}); --在从server是插不进去的,会报错“not master”
为了降低主server的压力备份什么的能够再从server完毕(比方数据较大,一备份就是几十分钟明显增大主server的压力):
./mongodump --port 20002 -d test 备份test数据库
**这样增删改的时候能够操作主server。读的时候链接从server
二:Replica Sets复制(副本集)
mongodb在1.6版本号中开发了replica set,主要是添加了故障自己主动切换和自己主动修复成员节点。各个DB之间
数据全然一致。最为显著的差别在于。副本集没有固定的主节点,它是整个集群选举出得到的一个主节点,当
其不工作是变更其它节点强烈推荐使用。
(主挂掉后会自己主动在从中选取出一个作为主server)
部署Replica Sets:
1):创建相应的文件 mongodb/(建立key 、 data 、 log目录) --key是存同一个会议的小组成员,为选举主server用的
bin key(建立钥匙文件:touch key1 、 touch key2) data(下创建目录data1 、data2) log(下创建目录dblog1 、 dblog2)
2): 在key文件夹下导入2个秘钥(linux的命令这个。win下的话能够自己手动建立)
echo "123456" >key1
echo "123456" >key2
chmod 600 * --记住:这2把钥匙一定要设置成600 (key文件下操作)
3):准备完成。启动开玩(开启2个mongodb服务)
rs1 :表示定义一个小组,小组组号叫rs1,开会用的
./mongod --replSet rs1 --keyFile=/usr/local/mongodb/key/key1 --port 20001 --dbpath=/usr/local/mongodb/data/data1/ --logpath=/local/mongodb/log/dblog1 --fork
能后在启动一个:
./mongod --replSet rs1 --keyFile=/usr/local/mongodb/key/key2 --port 20002 --dbpath=/usr/local/mongodb/data/data2/ --logpath=/local/mongodb/log/dblog2 --fork
*副本集就已经启动了
4):2个成员会自己主动开会,如今建立下会议室的配置
./mongo --port 20001 ------>(20002也行,哪台机器都能够)
配置建立副本集(小组清单):
config_rs1={
_id:"rs1",
members:['
{_id:0,host:"localhost:20001",priority:1}, --表示优先级,数字越大优先级就越高,选举主server就更大
{_id:1,host:"localhost:20002",priority:2},
']
} --回车, config_rs1能够直接回车查看
初始化副本集配置(小组清单):
rs.initiate(config_rs1); --回车 在回车,你会发现mongodb的 ">" 符号 变成 "SECONDARY>"(从) 或者 "PRIMARY>"(主)
为什么会变符号呢?(mongodb的 ">" 符号 变成 "SECONDARY>"(从) 或者 "PRIMARY>"(主)):
以为当你初始化副本集的时候,他们就在开会能后把localhost:20002选举为主server(priority数字越大优先级越高),
所以localhost:20002被选举为主server"PRIMARY>"
5):数据測试
./mongo --port 20002 (主)
db.c1.insert({name:"user1"});
db.c1.insert({name:"user2"});
db.c1.find();
rs.status(); --查看副本集的状态
在登录从server(从server同步是的增删改的数据):
./mongo --port 20001
show tables; --假设报错,说明你没权限,能后你敲下以下的命令
rs.slaveOk(); --副本集主从里面,从要想有主的读权限的时候敲下该命令,来确认你的身份是从server
show tables; --就好使
db.c1.find(); --主的数据就能读到了
db.c1.insert({name:"user2"}); --副本集的主从也一样,不能再从里面插入数据,由于不是主server
故障转移:
要2台以上的mongodbserver哦。
副本集比传统的master-salve有改进的地方是它能够进行故障的自己主动转移
假设我们停掉复制集中的一个成员。那么剩下的成员就会自己主动选举出一个新的成员,做为主数据库
MongoDB 集群搭建(主从复制、副本及)(五)的更多相关文章
- MongoDB集群搭建之副本集模仿主从模式的行为
#模拟主节点异常中断 [root@ba3b27d855f6 bin]# kill -9 199 [root@ba3b27d855f6 bin]# #连接到其中一台备份节点 [root@ba3b27 ...
- MongoDB集群搭建-副本集
MongoDB集群搭建-副本集 概念性的知识,可以参考本人博客地址: 一.Master-Slave方案: 主从: 二.Replica Set方案: 副本集: 步骤:(只要按步骤操作,100%成功) 1 ...
- mongodb集群搭建过程记录
mongodb集群搭建花费比较长的时间,在此记录下过程,方便以后使用 一 软件环境 系统:ubuntu 18.04,mongodb 社区版4.2 https://docs.mongodb.com/ma ...
- Mongodb 集群搭建以及常见错误
Mongodb 集群搭建以及常见错误 1 关于Replica Sets +Sharding(主从复制加分片)搭建,不这详细去说,网上有很多,大部分的例子就三台服务器之间做主从复制,分2个shard,架 ...
- Mongodb集群搭建之 Replica Set
Mongodb集群搭建之 Replica Set Replica Set 中文翻译叫做副本集,不过我并不喜欢把英文翻译成中文,总是感觉怪怪的.其实简单来说就是集群当中包含了多份数据,保证主节点挂掉了, ...
- MongoDB集群搭建-分片
MongoDB集群搭建-分片 一.场景: 1,机器的磁盘不够用了.使用分片解决磁盘空间的问题. 2,单个mongod已经不能满足写数据的性能要求.通过分片让写压力分散到各个分片上面,使用分片服务器自身 ...
- MongoDB 3.6.9 集群搭建 - 切片+副本集
1. 环境准备 在Mongo的官网下载Linux版本安装包,然后解压到对应的目录下:由于资源有限,我们采用Replica Sets + Sharding方式来配置高可用.结构图如下所示: 这里我说明下 ...
- mongodb集群搭建(分片+副本)
原文地址:https://www.cnblogs.com/ityouknow/p/7344005.html 相关概念 先来看一张图: 从图中可以看到有四个组件:mongos.config server ...
- mongodb集群搭建(分片+副本)开启安全认证
关于安全认证得总结: 这个讲述的步骤也是先创建超管用户,关闭服务,然后生成密钥文件,开启安全认证,启动服务 相关概念 先来看一张图: 从图中可以看到有四个组件:mongos.config server ...
- mongodb3.6集群搭建:分片+副本集
mongodb是最常用的noSql数据库,在数据库排名中已经上升到了前五.这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群. 在搭建集群之前,需要首先了解几个概念:路由,分片.副本集.配置 ...
随机推荐
- LeetCode-342:Power of Four
This is another "Pick One" Problem :[Problem:342-Power of Four] Given an integer (signed ...
- .NET 跨平台RPC框架DotNettyRPC Web后台快速开发框架(.NET Core) EasyWcf------无需配置,无需引用,动态绑定,轻松使用 C# .NET 0配置使用Wcf(半成品) C# .NET Socket 简单实用框架 C# .NET 0命令行安装Windows服务程序
.NET 跨平台RPC框架DotNettyRPC DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standar ...
- jquery ajax调用WCF,采用System.ServiceModel.WSHttpBinding协议
采用System.ServiceModel.WSHttpBinding或者basicHttpBinding 协议.客户端就不能直接在前端通过url直接访问服务了 它是基于SOAP协议的bing,会采用 ...
- Python学习笔记014——迭代工具函数 内置函数zip()
1 描述 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操 ...
- redhat 6.4 安装VirtualBox自动增强功能功:unable to find the sources of your current Linux kernel
redhat 6.4 安装VirtualBox自动增强功能功能的时候提示: building the main Guest Additions module FAILED unable to find ...
- CXF+Spring+JAXB+Json构建Restful服务
话不多说,先看详细的样例: 文件文件夹结构: web.xml <?xml version="1.0" encoding="UTF-8"? > < ...
- 在 IE 浏览器中,使用 bootstrap 使得页面滚动条浮动显示,自动隐藏,自动消失
貌似是从 IE10 开始?为了触屏操作优化浏览器的内容显示,IE 浏览器提供了一种可以浮动显示,自动隐藏的滚动条样式,但是这个样式会在某些情况下造成一些困扰,比如下图... 其实默认情况下,桌面版的 ...
- [hihoCoder] #1055 : 刷油漆
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上回说到,小Ho有着一棵灰常好玩的树玩具!这棵树玩具是由N个小球和N-1根木棍拼凑而成,这N个小球都被小Ho标上了不同的数 ...
- Qt Quick + OpenGL + Bullet初次測试
Qt Quick + OpenGL + Bullet初次測试 眼下Qt的Quick模块已经表现得很出色,并且可以预留接口来渲染OpenGL场景.一般来说,已经可以满足大部分编程须要了.这次呢.尝试使用 ...
- typedef的用法再思考
最近重读c语法,有所感悟,记录. 有时候感悟,其实就是猜,假想,作者创建语言的想法,通俗的讲就是丹尼斯灵魂附体了,这个时候任何c语言难点对于你来说,就像吃饭喝水一样简单了,同时还能发现它优美动人之处. ...