7.使用inital sync解决Oplog严重落后的问题
使用inital sysnc解决Oplog严重落后的问题
虽然,可以通过增大oplog集合的大小,让复制集节点拥有充足的时间、磁盘空间同步操作日志,最终实现数据一致性。
但是,由于网络故障或节点本身的故障,当节点长时间不在线时,节点中的Oplog集合数据将远远落后于Primary节点中的Oplog集合数据,即使网络或节点恢复正常,也可能出现Primary节点中的写操作日志还未被复制过去就被覆盖了。也就是说,出现故障的节点不可能追上Primary节点中最新修改的数据。
当出现这种现象时,用户只能手动干预,可以通过初始化数据同步(initial sync)模式完整执行一遍数据同步。
Mongodb支持以下两种模式的初始化数据同步。
- 第1种模式:手动清空Mongodb数据目录,重启mongod进程,让Mongodb自动执行initial sync,这种模式操作简单,如果同步的数据量较大,则需要消耗较长的时间
- 第2种模式:手动清空Mongodb数据目录,从拥有最新数据的某个节点上,将数据目录下的所有子文件或子文件夹复制过来,再启动Mongod进程,这种模式需要较多的手动操作,但会更快地完成数据同步。
这里涉及的几个命令:
#停止mongod服务端 >use admin >db.shutdownServer()
浙公网安备 33010602011771号