Mongodb mongodump oplog,备份单个数据库

Mongodb mongodump oplog,备份单个数据库,mongodb,Mongodb,我想使用oplog从单个数据库创建一个增量备份策略 由于mongodump的--oplog选项创建了完整版本的转储,我想知道是否有任何方法可以: 使用oplog选项从“x”秒前的单个数据库进行转储 使用“x”秒前的oplog选项从单个集合进行转储 因为来自mongodump的--oplog版本会创建完整版本的转储 实际上,mongodump--oplog创建了一个只包含mongodump操作期间的操作的。此选项的目的是捕获数据库的有效时间点状态,否则,mongodump过程中的写入操作可能会影响

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

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

  • 使用oplog选项从“x”秒前的单个数据库进行转储
  • 使用“x”秒前的oplog选项从单个集合进行转储
  • 因为来自mongodump的--oplog版本会创建完整版本的转储

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

    从“x”秒前使用oplog选项从单个数据库进行转储

    从“x”秒前使用oplog选项从单个集合进行转储

    无法使用oplog从X秒前转储数据库或集合快照:

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

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

    备份策略 您使用oplog的备份策略是:

    • 创建数据库的定期完整备份
    • 定期备份完整的oplog
    您可以使用oplog执行时间点恢复,但作为增量备份策略,它不是非常有效,因为您必须备份完整的oplog

    如果要增量备份单个集合,可以使用
    mongodump
    和“last updated”字段(或对于仅插入的集合,使用“创建的”时间戳)进行备份

    为副本集实现快速时间点备份的一种更常见的方法是使用。根据您的底层存储层,文件系统快照通常可以通过有效存储连续快照之间的更改而快速完成。快照是本地的,所以您仍然需要考虑如何将备份作为本地策略的一部分导出异地。
    mongodump
    备份的注意事项 使用时,还应注意:

    • 需要读取所有数据,因此如果数据集比内存大得多,则可能会从内存中交换有用的数据
    • 导出完整数据(除包含oplog的
      本地
      数据库外),但仅导出索引的定义
    • mongodump
      备份将使用最少的空间(因为您没有预分配的存储或索引),但恢复时间也最长(因为
      mongorestore
      必须重建所有数据文件和索引)
    相关问题:


    谢谢您的回复。我将尝试快照方法next@Stennie这是一个很好的答案!!嗨,斯坦尼。我刚看到你的个人资料,发现你在mongodb工作。所以我有一个问题,你能回答吗。Que->为什么聚合中没有在数组中查找重复项的操作符?你可以看到我的眼睛。人们已经回答了这个问题,但对于那个普通的问题来说,这是一个棘手的问题。所以,如果你正在采取任何措施,请告诉我!!!