我想通过mongodump命令上的开关指定mongodump转储的目录.这可能吗?
我有一个包含大量数据的mongodb实例,现在我需要启动一个没有数据的相同结构的新实例.
如何完成它?
有没有办法在没有mongorestore的情况下从该存档中提取数据?
我正在尝试从mongodb沙箱选项升级到共享群集,并且为了保留我当前的数据,我必须执行mongodump和mongorestore将旧数据迁移到新数据库.
这就是我在命令行中输入的内容.
mongorestore -h url:host -d heroku_zc -u heroku_zc -p 470grupv030prq5uj0fm mongo-dump-dir/heroku_9r
Run Code Online (Sandbox Code Playgroud)
它似乎一切正常并恢复所有数据条目,但在上传文件块时它会暂停.有时5%的ay通过有时20%的方式通过有时50%.
正如我所说,当我查看新数据库时,所有行都正确,并且只丢失了实际的数据文件.
这是终端中发生的事情,它不会发出错误,只是停止.
2017-02-09T15:45:20.509+0100 [#.......................] heroku_z25kbwmc.fs.chunks 15.8 MB/299.6 MB (5.3%)
2017-02-09T15:45:23.509+0100 [#.......................] heroku_z25kbwmc.fs.chunks 15.8 MB/299.6 MB (5.3%)
2017-02-09T15:45:26.510+0100 [#.......................] heroku_z25kbwmc.fs.chunks 15.8 MB/299.6 MB (5.3%)
Run Code Online (Sandbox Code Playgroud)
这两个db都是从heroku创建的,作为我的解析服务器的插件.
编辑:我也不知道这是不是一个问题,本地系统数据库说2.03GB.我不明白这是怎么回事,因为总数据库大小只有500mb
好的,所以我们有mongodump工具,它有--password选项.一切都很好,除了这个普通密码在每个人的ps输出中都可见.
我们的数据库具有普通用户/密码认证.
我发现唯一能做的就是这样做
echo secretpwd | mongodump --username backup --oplog
Run Code Online (Sandbox Code Playgroud)
ps中没有密码跟踪,仍在工作.
有没有更好的方法?
我们的mongodb.conf版本3.06和数据文件只有240 MB的大小.在这个时间戳网络是可靠的.
# mongod.conf
# Where to store the data.
# Note: if you run mongodb as a non-root user (recommended) you may
# need to create and set permissions for this directory manually,
# e.g., if the parent directory isn't mutable by the mongodb user.
dbpath=/db/db32/mongodb/data/
# path to logfile
logpath=/db/db32/mongodb/logs/mongod.log
# add new entries to the end of the logfile
logappend=true
# Listen to local interface only. Comment out to listen on all interfaces.
#bind_ip = 127.0.0.1
# …Run Code Online (Sandbox Code Playgroud) 我尝试从 atlas 恢复 mongo 备份文件。
它包含一些 wt 文件。如何恢复。
从 atlas 的每日快照下载备份。
提前致谢。
根据我的研究,mongodump没有内置的检查来验证mongodump操作的完整性; 至少,对用户来说并不明显.我可能错了.如果是的话,请通知我.否则,我确信我不是唯一一个希望验证他们的mongodump操作复制数据而没有任何损坏或丢失的人.其他人用来确保mongodump文件完整性的各种方法有哪些?如果在分片群集上执行此操作的方法本质上不同,请回答如何在单个MongoDB实例和分片的实例上执行此操作.
获得mongodump和mongorestore使用安全性非常麻烦.
我有运行的mongodv3.4.1 .它是在我的Windows上运行的VirtualBox docker机器的IP地址.它仅用于测试原因.requireSSL192.168.99.100
实例已配置为使用TLS/SSL服务器和客户端使用相同的CA签名.我使用mongodCommon Name 的IP地址来允许主机名验证.身份验证已启用以接受我的客户端证书.
一切正常.我可以像这样连接到它:
mongo --ssl --host 192.168.99.100 --sslCAFile rootCA.pem --sslPEMKeyFile me.pem
Run Code Online (Sandbox Code Playgroud)
但现在我不能同时兼顾mongodump和mongorestore工作:
mongodump --ssl --host 192.168.99.100 --sslCAFile rootCA.pem --sslPEMKeyFile me.pem -d olddb
mongorestore --ssl --host 192.168.99.100 --sslCAFile rootCA.pem --sslPEMKeyFile me.pem -d newdb --dir=dump/olddb
Run Code Online (Sandbox Code Playgroud)
两者都返回此错误:
2017-01-13T04:28:03.881+0800 Failed: error connecting to db server: no reachable servers, openssl error: Host validation error
Run Code Online (Sandbox Code Playgroud)
我一直试图关闭客户端证书,使用用户名/密码,但仍然无法正常工作.我需要删除SSL才能使其正常工作.
这意味着我只能preferSSL在生产中使用.
如果我坚持下去,就无法在localhost中绕过SSL requireSSL.
有人得到同样的错误?这是一个已知的问题吗?
我的客户使用mongoDB 2.4,因为这个版本有一些限制,我们给他们选择升级到最新的稳定的mongoDB 3.4.5.
在MongodDB 2.4中使用mongodump和在Mongodb 3.4.5中使用mongorestore的初步测试工作正常,因为我可以看到导入的所有集合.
从文档mongorestore中没有提到它可以从旧版本的mongoDB恢复转储.
由于我们不能使用mongorestore,我可以使用" mongoexport "以旧的mongoDB 2.4的csv/json格式导出数据,并导入更新版本的mongoDB 3.4吗?
使用"mongoexport/mongoimport"而不是"mongodump"升级到更新版本的mongoDB 3.4会有什么问题?
注意:我将完全删除旧版本的mongoDB,并将安装较新版本的mongoDB
mongodb ×10
mongodump ×10
mongorestore ×3
heroku ×1
mongo-shell ×1
passwords ×1
security ×1
ssl ×1
tokumx ×1