MongoDB的备份主要有4种方式,前3种在分片环境和基于任意时间点的恢复上都比较难实现,第4种是企业版的收费功能
补充TF的回答
1、mongodump
可以通过Oplog备份,做增量备份和增量恢复
2、文件系统快照
db.fsyncLock()只能锁住sever层,无法锁住engine层。建议等engine脏数据刷盘后,再进行备份。
或者直接锁系统层面的
3、备份secondary节点
有延迟备份节点概念,也可以当做应急恢复
其他
分片环境的备份任意时间点恢复,一般是停止config的rebalance,然后备份oplog。保证恢复的一致性点。
percona提供了shard环境的一致性备份工具(开源)mongodb_consistent_backup
另外,percona发行版的mongodb,提供了物理备份的工具