【发布时间】:2017-04-25 01:42:29
【问题描述】:
我有一个带有两个数据库的 MongoDB 实例,我们称它们为“realdb”和“copydb”。
我要做的就是定期将realdb复制到copydb。 copydb 数据库是实际数据库“realdb”的“测试”实例,我们希望定期更新它。
这个问题的答案通常是“copydb”或“export/import”。但是,也存在一些挑战:
- 目标 Mongo 实例正在运行 1.6 版,不太可能很快更新。
- 目标 Mongo 实例位于我无法直接访问的远程服务器上。
这似乎是一个足够基本的功能,即使是 1.6 也应该有能力做到这一点。但是当我尝试任何东西时,我都会收到“没有这样的 cmd”错误,好像新的 Mongo 无法与古老的 Mongo 通信。
对如何做到这一点有任何想法吗?
【问题讨论】:
-
您正在运行的确切命令是什么?你能提供你正在运行的确切命令和你得到的确切输出吗?在此处复制/粘贴。
-
对不起,我应该想到把它放在实际的描述中。我已经尝试了 3 种方法:来自 mongo:db.copyDatabase("licensing_dev","licensing_dev","remote.server.name"); { "ok" : 0, "errmsg" : "listCollections failed: { errmsg: \"no such cmd\", bad cmd: { listCollections: 1, filter: { $or: [ { type: \"collection\" } , { type: { $exists: false } } ] }, cursor: {} }, ok: 0.0 }", "code" : 18630, "codeName" : "Location18630" }
-
我也试过:mongodump --host remote.server.name --port 27017 --db license_dev --out /tmp/mongo.js 2017-04-21T08:52:17.110-0700 失败:获取数据库
licensing_dev的集合时出错:运行listCollections时出错。数据库:licensing_devErr:没有这样的 cmd -
为了完整起见,我尝试了: mongoexport --host remote.server.name:27017 --db license_dev --collection seat --out /tmp/mongo.js 2017-04-21T08:55: 39.759-0700 失败:错误运行
listCollections。数据库:licensing_devErr:没有这样的 cmd -
奇怪的是,我可以使用 rockmongo 导出,但由于“文件太大”错误而无法导入。不过,这并没有真正帮助我,因为我的最终目标是自动将一个数据库定期复制到另一个数据库。
标签: mongodb