MongoDB的常规备份策略

MongoDB的常规备份策略
1 冷备份--复制数据库文件
2 mongodump/mongorestore
除了mongodump/mongorestore之外还有一对组合是mongoexport/mongoimport
区别:
mongoexport/mongoimport导入/导出的是JSON格式,而mongodump/mongorestore导入/导出的是BSON格式。
JSON可读性强但体积较大,BSON则是二进制文件,体积小但对人类几乎没有可读性。
BSON格式即mongodump/mongorestore跨版本可能会失败,JSON格式即mongoexport/mongoimport可以跨版本操作
JSON格式只保留了数据部分,不保留索引,账户等其他基础信息。

mongodump备份选项--oplog
注意这是replica set或者master/slave模式专用,--oplog选项只对全库导出有效,所以不能指定-d选项。因为整个实例的变更操作都会集中在local库中的oplog.rs集合中。
实际作用是在导出的同时生成一个oplog.bson文件,存放在你开始进行dump到dump结束之间所有的oplog
在replica set中oplog是一个定容集合(capped collection),它的默认大小是磁盘空间的5%(可以通过--oplogSizeMB参数修改),位于local库的db.oplog.rs
其中记录的是整个mongod实例一段时间内数据库的所有变更(插入/更新/删除)操作。当空间用完时新记录自动覆盖最老的记录
其覆盖范围被称作oplog时间窗口。需要注意的是,因为oplog是一个定容集合,所以时间窗口能覆盖的范围会因为你单位时间内的更新次数不同而变化

简单说备份会产生两个文件:数据库文件和oplog.bson文件,数据库文件存放备份开始到结束时间段内某个时间的数据,
oplog.bson文件存放的是dump开始的时间系统将修改记录到oplog.bson

数据恢复的时候先恢复数据文件,之后再恢复oplog.bson内数据

posted @ 2017-02-16 20:54  饿狼的传说  阅读(185)  评论(0编辑  收藏  举报