mongorestore从独立到复制

时间:2013-11-07 12:05:29

标签: mongodb

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

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

我试图将其恢复到具有以下内容的副本集:

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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>

这对我有用,可能的解释是,无论何时我写入主数据库,它都会自动复制到我的辅助数据库。因此无需提供任何副本集地址。如果你在二级写作,我不确定,没有尝试过,这可能会有用。也许别人可以对它进行说明。

答案 1 :(得分:0)

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

mongorestore --version

mongo --version

mongodump也是如此。

mongodump --version

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