5

我已经转储了一个在默认端口上运行的独立 mongo 数据库(14Gb 大),如下所示:

mongodump --username <username> --password <password> --db <dbname>

我正在尝试将其还原到具有以下内容的副本集:

mongorestore --host myReplSet/127.0.0.1:27020 --drop --username <username> --password <password>

恢复似乎有效(大约需要一分钟,输出看起来不错)创建了数据库并创建了所有集合,但集合中没有数据,它们都是空的。我究竟做错了什么?

对于它的价值,本地数据库显示它有 10 Gb 大(我不确定恢复前它有多大)

4

2 回答 2

5

如果有人面临同样的问题。我使用了一个副本集,并尝试执行 Op 的命令。IE

mongorestore --host myReplSet/mongo0.example.com:27020,mongo1.example.com:27012 --db <dbname> <folder_location>

相反,只需转到主服务器并执行此操作

mongorestore --port <if running on port other than 27017> --db <dbname> <location of dump>

这对我有用,一个可能的解释是,每当我写入主数据库时,它都会自动复制到我的辅助数据库中。因此不需要给出任何副本集地址。如果您在中学写作,这可能会起作用,我不确定,没有尝试过。也许其他人可以照亮它。

于 2016-10-20T14:41:03.030 回答
0

确保 mongorestore 版本与 mongodb 版本相同。

mongorestore --version

mongo --version

mongodump 也是如此。

mongodump --version

它们需要相同或足够接近的版本。这些是您将在分布式系统上遇到的问题。它将创建集合,但如果版本不匹配,它们将为空。

于 2017-07-04T01:02:37.100 回答