我在计算机A(ubuntu 12.04服务器)上使用mongodump创建了一个转储.我将它移动到计算机B(ubuntu 12.04服务器)并输入:
mongorestore -db db_name --drop db_dump_path
它失败了,它报告说:
连接到:127.0.0.1
终止在抛出'std :: runtime_error'的实例后调用
what():locale :: facet :: _ S_create_c_locale name无效
Aborted
我以前成功地完成了这个操作,这种奇怪的行为从未发生过.我需要做些什么来解决这个问题?
我需要将生成的集合导入(恢复)mongodump
到现有数据库中,并且我希望将记录合并到现有集合中.
是否mongorestore
合并同一集合中的记录,或者在恢复记录之前删除现有集合?
我曾经习惯mongodump
转储我的mongodb数据库,它创建了一些bson文件dump/mydb
但我不知道如何使用它们.我试过mongoimport
,但似乎无法导入bson数据.那么如何使用这些bson文件?如何将它们导入另一个mongodb?
在MongoDB中,是否可以转储数据库并将内容还原到其他数据库?例如这样:
mongodump --db db1 --out dumpdir
mongorestore --db db2 --dir dumpdir
Run Code Online (Sandbox Code Playgroud)
但它不起作用.这是错误消息:
构建要从dumpdir目录恢复的集合列表
不知道如何处理子目录"dumpdir/db1",跳过...
DONE
我收到以下错误(转储MongoDB 3.2)(恢复MongoDB 3.4):
Failed: ngivr-dev.ledgerhelpers: error creating indexes for ngivr-dev.ledgerhelpers: **createIndex error:** **The field 'safe' is not valid for an index specification.** Specification: **{ unique: true, name: "ledgerId_1", safe: null, ns: "ngivr-dev.ledgerhelpers", background: true, key: { ledgerId: 1 } }**
Run Code Online (Sandbox Code Playgroud)
看起来安全索引为null.但是我如何在MongoDB 3.4中使用它?3.2没关系.
我已经找到了很多关于如何使用mongodump和mongorestore的良好指示,备份我的流星生产服务器并在需要时恢复备份:
meteor mongo --url myApp.meteor.com
mongodump -u client -h production-db-b2.meteor.io:27017 -d myApp_meteor_com -out dump/2014_10_21 -p [password from meteor mongo --url]
mongorestore -u client -h production-db-b2.meteor.io:27017 -d myApp_meteor_com dump/2014_10_21_v2/myApp_meteor_com -p [password from meteor mongo --url]
Run Code Online (Sandbox Code Playgroud)
我没有找到的解释是如何将备份转储恢复到我的本地流星应用程序.我的app文件夹中有一个mongodump输出.我不确定我是否可以使用mongorestore,或者我是否应该做其他事情.
我想使用mongorestore在mongoDB中加载数据/恢复转储数据.我想命令
mongorestore dump
Run Code Online (Sandbox Code Playgroud)
但它给了我错误
Sat Sep 21 16:12:33.403 JavaScript execution failed: SyntaxError: Unexpected identifier
Run Code Online (Sandbox Code Playgroud)
我们如何将数据恢复或放入mongoDB?请给我一些步骤.
成功转储MongoDB:
$ mongodump -h ourhost.com:portnumber -d db_name01 -u username -p
Run Code Online (Sandbox Code Playgroud)
我需要将它导入或导出到测试服务器并与之斗争,请帮我弄清楚.
我试过一些方法:
$ mongoimport -h host.com:port -c dbname -d dbname_test -u username -p
connected to host.
Password: ...
Run Code Online (Sandbox Code Playgroud)
给出了这个错误:
assertion: 9997 auth failed: { errmsg: "auth fails", ok: 0.0 }
$ mongoimport -h host.com:port -d dbname_test -u username -p
Run Code Online (Sandbox Code Playgroud)
给出了这个错误:
no collection specified!
Run Code Online (Sandbox Code Playgroud)
如何指定使用哪个集合?我应该为-d使用什么?我想上传什么或者我想用什么作为测试?我想导入完整的DB不仅是它的集合.
我想创建一个启动mongo服务器的Docker镜像,并mongodump
在启动时自动从之前恢复.
这是我的图像Dockerfile:
FROM mongo
COPY dump /home/dump
CMD mongorestore /home/dump
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我遇到了这个错误:
Failed: error connecting to db server: no reachable servers
有没有办法让mongorestore
命令通过Docker运行?
我正在按照本教程来备份和恢复单个MongoDB数据库.
备份命令 -
sudo mongodump --db newdb --out /var/backups/mongobackups/`date +"%m-%d-%y"`
Run Code Online (Sandbox Code Playgroud)
恢复命令 -
sudo mongorestore --db newdb --drop /var/backups/mongobackups/01-20-16/newdb/
Run Code Online (Sandbox Code Playgroud)
虽然它完美无缺,但MongoDB在恢复数据时给了我这个警告 -
只应在从BSON文件恢复时使用--db和--collection args.其他用途已弃用,将来不再存在; 请改用--nsInclude
有人可以解释如何删除此警告吗?
我正在使用MongoDB 3.4.1版本.
mongodb ×10
mongorestore ×10
mongodump ×5
data-dump ×1
docker ×1
dockerfile ×1
dump ×1
locale ×1
meteor ×1
mongoimport ×1
ubuntu-12.04 ×1