MongoDB使用副本集备份添加新的辅助副本成员

  

,

在生产环境中,当辅助副本成员的读压力很大时,可通过添加新的辅助副本成员来缓解压力。

为了能实现主副本成员不停机,并减轻主副本成员的压力,可在辅助副本成员上mongodump备份数据;

为了实现新的辅助副本成员的快速恢复,可直接通过以NFS方式挂载辅助副本成员到做备份操作的辅助副本成员上;

为了保证数据的一致性,在mongodump数据的时候使用-oplog参数,mongorestore时使用-oplogReplay参数;

为了满足后期空间的扩容,通过-directoryperdb参数将数据库分目录存储。

,

,

,

参见:Linux CentOS上配置NFS网络文件系统以及客户端使用

,

,

当地数据库不会被备份,包括管理在内的其他库会被备份。

mongodump ——主机=192.168.11.1:27017 ——oplog  -o /mnt/mongo/mongodata  -u  xucy , -p  Passw0rd ——authenticationDatabase  admin 祝辞,mongodump.log  2祝辞,1,,

,

可通过实时查看日志数据,观察备份进度。

,

tail  -f  mongodump.log

,

,

mongorestore要在mongod未启动的情况下运行,它直接写入文件。

mongorestore ——主机=192.168.11.2:27017 ——oplogReplay ——dbpath /数据/var/lib/mongodb ——directoryperdb /nfspool/mongodata 祝辞,mongorestore.log  2祝辞,1,,

,

可通过实时查看日志数据,观察恢复进度。

,

tail  -f  mongorestore.log

,

,

1。查看主副本的维护窗口和oplog大小:

rs_main: PRIMARY>db.printReplicationInfo (),,
配置oplog大小:,,23862.404296875 mb,,
日志开始到结束的长度:39405秒(10.95小时),,时间:
oplog第一个事件,太阳2015年2月08年10:34:07 gmt - 0600 (CST),最后,
oplog事件时间:,,太阳2015年2月08年21:30:52 gmt - 0600 (CST),现在,
:,,,,,,,,,,,,,,,,,,,,太阳2015年2月08年21:30:53 gmt - 0600 (CST)

,

2。在新机器上重建oplog:

,

以独立的方式启动,执行如下删除和创建脚本:

祝辞,use  local ,,,   祝辞,db.oplog.rs.drop (),,,,   祝辞,db.createCollection (“oplog.rs”,,{“封顶”,:,真的,,“大小”,:,23日,*,1024,*,1024,*,1024}),,,,   或,,,,   祝辞,db.runCommand(,{,创建:“oplog.rs”,限制,,真的,,尺寸:,(23,*,1024,*,1024,*,1024),},)


,

此oplog是mongodump时导出的oplog。bson .

mongorestore  -d  local  -c  oplog.rs /nfspool/mongodata/oplog.bson

,

,

新实例配置和源副本集添加相同的——replSet和密钥文件参数,以副本集启动

,

,

祝辞rs.add (“192.168.11.2:27017”)   {" ok ": 1}



MongoDB使用副本集备份添加新的辅助副本成员