作为一个合格的dba((⊙o⊙)…我是菜鸟),备份应该是重中之重,就像‘兵马未动粮草先行’,完善的备份可以救你一命啊,切记,切记!
那么mongodb副本集备份时到底需要oplog吗?
1、先看作用:
mongodump --oplog会记录备份期间对数据的修改到oplog.bson中
这样mongorestore --oplogReplay会在恢复完数据后重放该oplog.bson
文件。
2、用--oplog选项的好处:
备份时,用户还可以向服务器写入数据,因此备份过程对用户透明。
3、在分片集群(每个分片是一个副本集)中为什么不用--oplog?
(1)为了保证备份的数据是某一时刻的数据。
(2)因为配置服务器和分片上的数据是单独备份的,在备份时,
用户同时写入数据的话,可能导致数据不一致:
如:
步骤1-全备配置服务器;(正常完成)
步骤2-全备分片;
步骤3-用户写入数据;(此时步骤2还在运行)
结果:配置服务器没有记录用户写入的数据,恢复后,这些数据无法通过路由找到,即丢失数据了。
4、如何备份分片集群: