【发布时间】:2014-08-11 02:32:58
【问题描述】:
我想使用 oplog 从单个数据库创建增量备份策略
由于 mongodump 的 --oplog 选项创建了完整版本的转储,我想知道是否有任何方法:
- 从单个数据库 使用“x”秒前的 oplog 选项进行转储?
- 从 单个集合 使用 oplog 选项从“x”秒前进行转储?
【问题讨论】:
标签: mongodb
我想使用 oplog 从单个数据库创建增量备份策略
由于 mongodump 的 --oplog 选项创建了完整版本的转储,我想知道是否有任何方法:
【问题讨论】:
标签: mongodb
因为来自 mongodump 的 --oplog 版本会创建完整版本的转储
实际上,mongodump --oplog 创建了一个partial dump of the oplog,它只包含mongodump 操作期间的操作。此选项的目的是捕获数据库的有效时间点状态,否则mongodump 过程中的写入操作会影响备份的输出。
使用 "x" 秒前的 oplog 选项从单个数据库进行转储?
使用 "x" 秒前的 oplog 选项从单个集合中进行转储?
您不能使用 oplog 转储 X 秒前的数据库或集合快照:
为了使 oplog 在恢复过程中得到有效应用,oplog 必须有一个与您上次完整备份相同的条目。
您无法有效地转储oplog 的子集,因为没有索引(并且 oplog 是不支持添加索引的特殊用途上限集合)。
您使用 oplog 的备份策略是:
您可以使用 oplog 进行时间点恢复,但它作为增量备份策略不是很有效,因为您必须备份完整的 oplog。
如果您想增量备份单个集合,您可能会使用mongodump 和“最后更新的字段”(或对于仅插入集合,“创建”时间戳)。
为副本集实现快速时间点备份的更常见方法是使用filesystem snapshot。根据您的底层存储层,文件系统快照通常可以通过有效存储连续快照之间的更改来快速完成。快照是本地的,因此您仍然必须考虑如何将备份导出到异地,作为整体策略的一部分。
mongodump 备份注意事项当您使用mongodump to backup 时,您还应该注意这一点:
local 数据库),但仅导出索引的定义。mongodump 备份将使用最少的空间(因为您没有预分配的存储或索引),但恢复时间最长(因为mongorestore 将不得不重建所有数据文件和索引) .相关问题:
【讨论】: