mongoDB复制集(Replica Set)

mongodb主从复制实现:

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

主节点:

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

从节点:

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


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

mongoDB复制集(Replica Set)_第1张图片

部署复制集:

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

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

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

2、启动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

3、启动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就会自动搜索并连接其余的节点。

4、启动这几台服务器后,日志就会告诉我们复制集没有进行初始化,在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()

你可能感兴趣的:(mongoDB复制集(Replica Set))