运维类问题
使用工具mongodump/mongorestore迁移数据会影响业务吗?
使用mongodump/mongorestore迁移数据是离线迁移过程,需要停止读写业务,建议在业务低峰操作。
怎么确认dump/restore操作完成?
mongodump/mongorestore操作完成会有提示结果,结果中显示dump/restore出的那些database中collection的document个数。执行结果失败也会有提示,并且提示出哪些数据库操作失败。
执行mongodump完成的提示结果
2019-04-09T09:52:00.161+0800 writing admin.system.version to
2019-04-09T09:52:00.162+0800 done dumping admin.system.version (1 document)
2019-04-09T09:52:00.162+0800 writing student_db.student_col to
2019-04-09T09:52:00.162+0800 writing mydb.mycollection to
2019-04-09T09:52:00.163+0800 done dumping student_db.student_col (5 documents)
2019-04-09T09:52:00.163+0800 done dumping mydb.mycollection (3 documents)
执行mongorestore完成的提示结果
2019-04-09T10:06:05.724+0800 preparing collections to restore from
2019-04-09T10:06:05.725+0800 reading metadata for student_db.student_col from dump/student_db/student_col.metadata.json
2019-04-09T10:06:05.758+0800 reading metadata for mydb.mycollection from dump/mydb/mycollection.metadata.json
2019-04-09T10:06:05.758+0800 restoring mydb.mycollection from dump/mydb/mycollection.bson
2019-04-09T10:06:05.778+0800 no indexes to restore
2019-04-09T10:06:05.778+0800 finished restoring mydb.mycollection (3 documents)
非4.0版本是不是有什么兼容性问题,是否不支持数据导入?
由于目前百度智能云上所创建的MongoDB实例都是3.4版本,是基于WiredTiger存储引擎的系统,所以在BCC中安装3.4版本的软件即可。但是自建/竞品的MongoDB数据库版本可能是4.0以上版本,所以为了能兼容、并正常的导数据,建议在BCC机器上安装4.0版本的MongoDB软件。
为什么需要从bcc上远程登录MongoDB的实例来dump?
因为百度智能云数据库 DocDB for MongoDB 实例目前仅支持在百度智能云BCC上操作,所以在导数据时如果是公有云便可以直接将公有云数据dump到百度智能云BCC上,如果是自建/私有云需要在自建环境下dump出数据,然后上传到百度智能云BCC机器,最后恢复到百度智能云数据库 DocDB for MongoDB 实例中。
连接断掉如何解决?是否需要重新dump?
如果在dump/restore数据时连接端掉,需要重新连接然后操作。但是如果数据量较大,终端显示已经dump/restore出了哪些数据,这些数据不必重新操作,仅对于没有操作完成的数据库重新进行操作。
本地MongoDB数据库存在集合system.indexes在restore到百度智能云数据库 DocDB for MongoDB 后不存在了?
因为存储引擎不同导致的,云数据库 DocDB for MongoDB 使用的存储引擎是WiredTiger3.4版本,而在本地MongoDB使用的mmapv1存储引擎,数据迁移完毕后这类集合就不存在了,但不影响迁移之后的正常使用。
在mongodump/mongorestore出现如下错误
2019-04-09T14:36:35.338+0800 Failed: error counting admin.system.keys: not authorized on admin to execute command { count: "system.keys", query: {}, $readPreference: { mode: "secondaryPreferred" }, $db: "admin" }
这是由于MongoDB shell和MongoDB server版本不兼容导致的,在3.X版本的MongoDB shell来操作4.0以上版本MongoDB数据库时会出现此错误,建议升级百度智能云BCC上的软件版本至4.0以上。
我是否需要使用mongodump进行数据备份?
为防止误操作,保障数据的安全,经常使用工具mongodump对数据库来做备份操作,并使用mongorestore来恢复某一时刻数据库备份状态。
如何远程连接云数据库 DocDB for MongoDB 服务
创建一个与云数据库 DocDB for MongoDB 服务节点部署在同一VPC下的BCC,在登录BCC后远程连接云数据库服务节点,具体的操作步骤参考连接实例。
远程连接云数据库 DocDB for MongoDB 失败
问题原因 | 解决方案 |
---|---|
参数输入错误 | 检查数据库名、用户名、密码等各参数是否输入正确 |
权限问题 | 检查输入的权限是否和数据库的权限匹配 |
客户端版本过低 | 检查客户端Mongo shell的版本,请升级至3.4以上版本 |
mongodump备份全部db报错
在一键式备份所有database时如遇到以上错误,出现的原因是客户端的版本过低,请升级至3.4以上版本。
使用mongodump进行数据备份,备份文件会存到哪里?
备份文件会存到执行mongodump命令的客户端所在节点,路径在-o 参数配置。
使用mongodump进行数据备份,恢复是直接回滚覆盖原来的mongodb云数据库数据吗?
是的,因此在执行恢复命令mongorestore前,需要您确认好要恢复的备份文件。
使用mongodump进行数据备份,备份和恢复过程是否会中断?如果中断怎么处理?
因网络波动等原因,备份和恢复过程可能会中断。如果中断发生,命令执行将会报错,此时需要重新发起备份或恢复操作。
使用mongodump进行数据备份是否会影响业务?
使用mongodump进行数据备份属于离线备份,在备份和恢复过程中,数据库将会停止提供读写服务,因此建议您在业务低峰进行操作。