①文件系统快照(snapshot)
②复制文件系统
③使用mongodump来备份
④使用mongorestore来恢复
⑤mongodb的备份准则
只针对replica或master/slave,满足这些准则MongoDB就可以进行point-in-time恢复操作:
1任意两次数据备份的时间间隔(第一次备份开始到第二次备份结束)不能超过oplog时间窗口覆盖范围。
2在上次数据备份的基础上,在oplog时间窗口没有滑出上次备份结束的时间点前进行完整的oplog备份。请充分考虑oplog备份需要的时间,权衡服务器空间情况确定oplog备份间隔。
实际应用中的注意事项:
- 考虑到oplog时间窗口是个变化值,请关注oplog时间窗口的具体时间。
- 在靠近oplog时间窗口滑动出有效时间之前必须要有足够的时间dump出需要的oplog.rs,请预留足够的时间,不要顶满时间窗口再备份。
- 当灾难发生时,第一件事情就是要停止数据库的写入操作,以往oplog滑出时间窗口。特别是像上述这样的remove({})操作,瞬间就会插入大量d记录从而导致oplog迅速滑出时间窗口。
分片集群的备份注意事项
1、备份什么?
(1)configserver
(2)每一个shard节点
2、备份需要注意什么?
(1)元数据和真实数据要有对等性(blancer迁移的问题,会造成config和shard备份不一致),要进行分片集备份,需要先关闭均衡器。
(2)不同部分备份结束时间点不一样,恢复出来的数据就是有问题的。建议对备份节点进行备份,最好是采用复制文件系统的方式。
⑥
附录:Aliyun备份策略
⑦
⑧
⑨
⑩
⑪
⑫
⑬
⑭
⑮
⑯
⑰
⑱
⑲
⑳