mongoDB复制集(Replica Set)

mongodb主从复制实现:node

只须要在某一个服务启动时加上--master参数,另外一个服务加上--slave和--source参数,便可实现主从同步。web

主节点:mongodb

#mongod  --dbpath=/data/dbs/master  --port  10000  --mastershell

从节点:数据库

#mongod  --dbpath=/data/dbs/slave  --port  10001  --slave  --source  192.168.10.50:10000服务器


复制集(Replica Set)是具有自动故障恢复功能的主从集群。主从集群和复制集最明显的区别是复制集没有固定的主节点,整个集群会选举出一个主节点。复制集中有一个活跃节点(Primary英 ['praɪm(ə)rɪ])和一个或多个备份节点(Secondary英 ['sek(ə)nd(ə)rɪ])。spa


部署复制集:日志

一、复制集命名为replcopy,启动IP为192.168.10.50,端口为10000这台mongodb数据库
code

#mongod   --dbpath=/data/dbs/node1   --port  10000  --logpath=/var/log/mongodb/node1.log  --replSet   replcopy/192.168.10.51:10001orm

说明:使用replSet是告诉服务器在这个replcopy复制集中还有别的同伴。

二、启动IP为192.168.10.51,端口为10001这台mongodb数据库

#mongod  --dbpath=/data/dbs/node2  --port  10001  --logpath=/var/log/mongodb/node2.log  --replSet  replcopy/192.168.10.50:10000

三、启动IP为192.168.10.52,端口为10002这台mongodb数据库

#mongod  --dbpath=/data/dbs/node3  --port  10002  --logpath=/var/log/mongodb/node3.log  --replSet  replcopy/192.168.10.50:10000

说明:复制集具有自动检测功能,在其中指定单台服务器后,mongodb就会自动搜索并链接其他的节点。

四、启动这几台服务器后,日志就会告诉咱们复制集没有进行初始化,在shell中链接其中一台服务器,初始化命令只须要执行一次

# /usr/local/mongodb/bin/mongo --port 10000

> config={_id : 'replcopy',members : [{_id : 0, host : '192.168.10.50:10000'},{_id : 1, host : '192.168.10.51:10001'},{_id : 2, host : '192.168.10.52:10002'}]}//配置节点信息{        "_id" : "replcopy",        "members" : [                {                        "_id" : 0,                        "host" : "192.168.10.50:10000"                },                {                        "_id" : 1,                        "host" : "192.168.10.51:10001"                },                {                        "_id" : 2,                        "host" : "192.168.10.52:10002"                }        ]}> replcopy.initiate(config)//这个过程可能要等个一到两分钟的时间。{        "info" : "Config now saved locally.  Should come online in about a minute.",        "ok" : 1}> replcopy.status()

相关文章
相关标签/搜索