您的位置:首页 > 数据库 > Mongodb

mongoDB复制集(Replica Set)

2016-03-05 00:00 423 查看
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ɪ])。



部署复制集:

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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: