副问题[/!--empirenews.page--]
MongoDB集群有副本集及主从复制两种模式,不外主从模式在MongoDB 3.6已经彻底废弃,本日首要切磋副本集的搭建和行使,以及分片。

副本集先容
副本集(Replica Set)即副本的荟萃,在MongoDB中通过先界说一个副本荟萃,然后将多个节点(副本)插手到这个荟萃中。简朴来说就是集群中包括了多份数据,担保主节点挂掉,备节点可以或许继承提供数据处事,实现MongoDB的数据备份及高可用。
副本集具有以下特性:
- N 个节点的集群
- 任何节点可作为主节点
- 全部写入操纵都在主节点上
- 自动妨碍转移
- 自动规复
副本集搭建
前提有限,我们在单机上,通过三个差异的MongoD线程来搭副本集。
主节点设置如下:
- # 指定命据库路径
- dbpath=/usr/local/mongodb/data/db
- # 行使追加的方法写日记
- logpath=/usr/local/mongodb/log/mongodb.log
- # 行使追加的方法写日记
- logappend = true
- # 绑定处事IP
- bind_ip=127.0.0.1
- # 处事器端口
- port = 27017
- # 以保卫历程的方法运行MongoDB,建设处事器历程
- fork = true
- # PID File 的完备路径
- pidfilepath=/usr/local/mongodb/var/mongod.pid
- # 不启用验证
- noauth=true
- # 最大同时毗连数,默认2000
- maxConns=2000
- # 同步复制的日记巨细配置,单元MB
- oplogSize=10
- # 副本集名称
- replSet=rs0
副本节点的设置和主节点的根基同等,必要修改一下数据库/日记/PID路径和端标语,副本集名称需同等:
- # 指定命据库路径
- dbpath=/usr/local/mongodb/node/2/data/db
- # 行使追加的方法写日记
- logpath=/usr/local/mongodb/node/2/log/mongodb.log
- # 行使追加的方法写日记
- logappend = true
- # 绑定处事IP
- bind_ip=127.0.0.1
- # 处事器端口
- port = 27018
- # 以保卫历程的方法运行MongoDB,建设处事器历程
- fork = true
- # PID File 的完备路径
- pidfilepath=/usr/local/mongodb/var/mongod2.pid
- # 不启用验证
- noauth=true
- # 最大同时毗连数,默认2000
- maxConns=2000
- # 副本集
- replSet=rs0
依次启动三个mongod历程:
- gitlib@devops:/usr/local/mongodb$ ps -aux | grep mongod
- root 14293 0.8 2.3 1588812 92700 ? Sl 08:06 0:01 bin/mongod -f mongod.conf
- root 14652 3.5 2.2 1583180 89364 ? Sl 08:08 0:00 bin/mongod -f mongod2.conf
- root 14723 6.4 2.2 1583180 89172 ? Sl 08:08 0:00 bin/mongod -f mongod3.conf
在主节点中,先行使rs.initiate()要领举办副本集初始化操纵,再行使rs.add()要领来添加副本集的成员:
- > rs.initiate()
- {
- "info2" : "no configuration specified. Using a default configuration for the set",
- "me" : "127.0.0.1:27017",
- "ok" : 1,
- "$clusterTime" : {
- "clusterTime" : Timestamp(1569457173, 1),
- "signature" : {
- "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
- "keyId" : NumberLong(0)
- }
- },
- "operationTime" : Timestamp(1569457173, 1)
- }
- rs0:OTHER> rs.add('127.0.0.1:27018');
- {
- "ok" : 1,
- "$clusterTime" : {
- "clusterTime" : Timestamp(1569457214, 2),
- "signature" : {
- "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
- "keyId" : NumberLong(0)
- }
- },
- "operationTime" : Timestamp(1569457214, 2)
- }
- rs0:PRIMARY> rs.add('127.0.0.1:27019');
- {
- "ok" : 1,
- "$clusterTime" : {
- "clusterTime" : Timestamp(1569457219, 1),
- "signature" : {
- "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
- "keyId" : NumberLong(0)
- }
- },
- "operationTime" : Timestamp(1569457219, 1)
- }
- rs0:PRIMARY>
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|