日期:2014-05-16  浏览次数:20341 次

【转】MongoDB副本集运维

由于在我们的Mongodb一项目中,访问量会突然暴增两倍,故需要进行一系列的扩容,并且由于我们使用的是1.8.3-pre版本,还需要把他升级为1.8.3,所以在这次调整中,涉及到Mongodb的扩容、升级、主库切换等等一系列运维工作,也幸好有这样的机会,才让我更能掌握Mongodb,下面贴出操作的一些命令及一些步骤,以做后续查看!


1、利用另外一台secondary机器传送数据

2、在新机器上中配置文件中添加fastsync=true配置(当需要从有数据中启动节点,那么必须加上fastsync=true,否则启动会报错,如果是从主库直接同步所有数据,那么就不需要添加这个参数)

3、启动后,在primary节点中添加节点

如:rs.add("10.73.24.171:9005")??当我们看到变为secondary后,就一切正常,可以正常提供线上服务了

?

4、通过rs.conf()命令查看现在的节点信息(需要admin库密码权限)

?

5、rs.remove()删除节点

?

6、添加arbiter节点:rs.addArb("10.73.24.171:19003")??

?

7、添加延时备份机器:rs.add({_id:4,host:"10.55.22.176:9004",priority:0,slaveDelay:3600});

?

8、当出现这个错误时:replSet error RS102 too stale to catch up,我们可以db.printReplicationInfo() 查看主库、从库的oplog信息;

?

以上为我切换过程中用到的大部分命令,主要还是replica set管理工具,如果能掌握,那么升级、扩容、主库切换都能快速进行!

?

这次在运维中,由于机器不够,去掉了延时备份角色,只做了主-->备-->2arbiter的一个高可用集群,当主库失效时候,基本能在10秒中切换到备上!

?

转自?http://hi.baidu.com/lizhm/item/f94a086e223b0535ad3e837c