我已经在默认端口上运行了一个独立的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大(我不确定它在恢复之前有多大)
答案 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
它们需要相同或足够接近的版本。 这些是您将在分布式系统上遇到的问题。 它将创建集合,但如果版本不匹配,它们将为空。