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()