gpt4 book ai didi

mongodb - mongodump oplog,备份单个数据库

转载 作者:可可西里 更新时间:2023-11-01 09:59:09 68 4
gpt4 key购买 nike

我想使用 oplog 从单个数据库创建增量备份策略

由于 mongodump 的 --oplog 选项创建了完整版本的转储,我想知道是否有任何方法可以:

  1. 单个数据库 使用“x”秒前的 oplog 选项进行转储?
  2. 从“x”秒前的单个集合使用 oplog 选项进行转储?

最佳答案

since the --oplog version from mongodump creates a dump of full version

实际上,mongodump --oplog 创建了一个 partial dump of the oplog仅包含 mongodump 操作期间的操作。此选项的目的是捕获数据库的有效时间点状态,否则 mongodump 过程中的写入操作会影响备份的输出。

make a dump from a single database using the oplog option from "x" seconds ago?

make a dump from a single collection using the oplog option from "x" seconds ago?

您不能使用 oplog 转储 X 秒前的数据库或集合快照:

  • 为了在恢复过程中有效地应用 oplog,oplog 必须有一个与您上次完整备份相同的条目。

  • 您无法有效地转储 oplog 的子集,因为没有索引(并且 oplog 是一个特殊用途的上限集合,不支持添加索引)。

备份策略

您使用 oplog 的备份策略是:

  • 为您的数据库创建定期完整备份
  • 定期备份完整的oplog

您可以使用 oplog 进行时间点恢复,但作为增量备份策略不是很有效,因为您必须备份完整的 oplog。

如果您想增量备份单个集合,您可以使用 mongodump 和“最后更新的字段”(或者对于仅插入的集合,“创建的”时间戳)来实现。

为副本集实现快速时间点备份的更常见方法是使用 filesystem snapshot .根据您的底层存储层,文件系统快照通常可以快速完成,并有效存储连续快照之间的更改。快照是本地的,因此您仍然需要考虑如何将备份导出到异地,作为整体策略的一部分。

mongodump 备份注意事项

当您使用 mongodump to backup 时你还应该意识到这一点:

  • 需要读取所有数据,因此如果您的数据集远大于内存,可能会将有用的数据换出内存。
  • 导出完整数据(本地 数据库除外,它包括 oplog),但仅导出索引的定义。
  • mongodump 备份将使用最少的空间(因为您没有预先分配的存储或索引)但恢复时间也最长(因为 mongorestore 将必须重建所有数据文件和索引)。

相关问题:

关于mongodb - mongodump oplog,备份单个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25235150/

68 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com