由于在我们的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