gpt4 book ai didi

MongoDB - 跨不同主机转储和恢复,带 oplog 的数据库

转载 作者:可可西里 更新时间:2023-11-01 10:03:29 25 4
gpt4 key购买 nike

是否可以使用 mongodump 并将其 mongorestore 到不同的主机,使用不同的数据库名称,并启用 oplog?

From: mongodb://user:password@source-hostname:source-port/db1

To: mongodb://user:password@dest-hostname:dest-port/db5

当我在源 MongoDB 上使用 oplog 执行 mongodump 时,它会转储整个数据库。

mongodump --oplog --host <source-hostname> -u <user> -p <password> --port <source-port> --authenticationDatabase admin

现在恢复,我想恢复到不同的主机名,数据库名也不同。有没有办法使用 oplogReplay 将数据恢复到这个数据库?

mongorestore --host <dest-host> --port <dest-port> --username <user> --password <password> --authenticationDatabase admin --oplogReplay --db <db5> <path-to-dump>/dump

如果我使用 oplogReplay,我会收到以下错误

Can only replay oplog on full restore

我不想进行完全恢复,因为它会将数据库名称创建为 db1,而我想使用 db5。此外,此目标主机上已经有多个数据库,我不想用另一个新数据库轰炸。

关于这个问题有什么建议吗?

最佳答案

您不能同时使用两个选项--oplogReplay--db。如果您不想恢复完整的数据库,只需转到转储/文件夹并删除 db5 以外的数据库的文件。然后在不使用 --db 的情况下重试 mongorestore:

mongorestore --host <dest-host> --port <dest-port> --username <user> --password <password> --authenticationDatabase admin --oplogReplay <path-to-dump>/dump

如果这对您不起作用,您可能需要将 oplog 集合导入一个临时数据库,并操作它以删除除 db5 记录之外的所有记录。

关于MongoDB - 跨不同主机转储和恢复,带 oplog 的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32364859/

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