gpt4 book ai didi

mongodb - mongodump --oplog 和每个数据库还原

转载 作者:行者123 更新时间:2023-12-05 07:39:57 27 4
gpt4 key购买 nike

我需要能够恢复单个数据库,甚至是备份中的单个集合。由于 mongodump --oplog 仅适用于完整实例(副本集),我进行了以下过程以仅过滤我想从 oplog.bson< 恢复的数据库中的条目/em> 由 --oplog 选项生成。有人可以告诉我这是正确的还是我遗漏了什么?

  1. 首先我只恢复我需要的数据库(在这个例子中数据库是 test)

    mongorestore -d test dump/test

  2. 将 --oplog 选项生成的 oplog.bson 文件恢复到随机集合中

    mongorestore -d oplog -c oplog dump/oplog.bson

  3. 仅从恢复的 oplog.bson 集合中转储引用我正在恢复的数据库的文档

    mongodump -d oplog -c oplog -q "{ns:/^test[.]/}" -o oplog

  4. 使用带有过滤操作的最后一次转储,使用 --oplogReplay 选项恢复

    mongorestore --oplogReplay oplog/oplog

  5. 最后,我删除了临时 oplog 集合。

    mongo --eval "db.getSisterDB('oplog').dropDatabase()"

提前致谢!

最佳答案

基本上,这是一种方法。或者您可以在转储特定数据库后执行额外的export

mongoexport -d local -c oplog.rs --query="{ns:/^test[.]/}" -o oplog.dump

2017-10-10T11:51:50.780+0300 connected to: localhost
2017-10-10T11:51:51.737+0300 local.oplog.rs 0
2017-10-10T11:51:51.938+0300 local.oplog.rs 3
2017-10-10T11:51:51.938+0300 exported 3 records

现在你有直接的 json 转储文件你可以读回

关于mongodb - mongodump --oplog 和每个数据库还原,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46649496/

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