记录通过命令行备份和恢复的过程
本地备份
1 | $ mongo |
这里备份了两个数据库,分别在两个目录下。
这里是将两个目录迁移到另外一个服务器,执行以下操作:
1 | $ cd mshop |
授权模式
如果mongodb开启了授权模式,则需要用户和密码,按照以下格式输入:
1 | $ mongodump -h localhost -d mshop --username zhangsan --password '123456' --port 3717 -o ./ |
远程服务器
如果出现以下错误:
Failed: error writing data for collection
test.user
to disk: error reading collection: Failed to parse: { find: “user”, skip: 0, snapshot: true, $readPreference: { mode: “secondaryPreferred” }, $db: “test” }. Unrecognized field ‘snapshot’.
是因为本地mongodump版本和数据库的不一样,这种问题一般出现远程数据库服务器。解决办法有两种:
- 修改mongodump的版本和目标数据库一样
--forceTableScan
强制备份
1 | $ mongodump -h localhost -d mshop --username zhangsan --password '123456' --port 3717 --forceTableScan -o ./ |
恢复数据至Docker镜像
1 | 拷贝数据data到镜像 |