我们的mongodb使用的是阿里云的云数据库 mongodb4.0
昨天新买的mongo需要把旧的mongo做一次迁移,发现阿里云的dts还不支持4.0版本,于是要自己动手迁移了.
用root账号连上新开通的mongodb,然后新建我们要的数据库efiles,用户:efile,密码:123456,授权角色:dbOwner及readWrite
注意: 一定要设置readWrite,发现阿里云的dts如果没有设置readWrite会无法对接
use efiles
db.createUser({user:"efile",pwd:"123456",roles:["dbOwner","readWrite"],mechanisms:["SCRAM-SHA-1"]});
备份及恢复请参考: https://help.aliyun.com/document_detail/60157.html?spm=a2c4g.11186623.2.20.19bde71fn0Ian0#concept-uvj-jgd-5fb
mongodump及mongorestore 需要下载mongodb安装包(ZIP包) https://www.mongodb.com/download-center/community
解压后,在bin目录下就有mongodb及mongorestore
打开powershell切换到mongodb的bin目录,执行mongodump
./mongodump --host dds-xxxxxxxx.mongodb.rds.aliyuncs.com --port 3717 -u efile --authenticationDatabase efiles
提示需要输入密码,输入对应用户的密码即可备份到当前目录的下:dump目录
./mongorestore --host dds-yyyyyyy.mongodb.rds.aliyuncs.com --port 3717 -u efile --authenticationDatabase efiles ./dump/
同样提示输入密码,密码输入正确后就执行恢复脚本,注意目录是 ./dump/,我第一次目录写的是 ./dump/efiles/ 执行失败的
数据验证,我这边主要是通过旧库与新库数据量的对比,通过对大部分collection查询数据条数 db.getCollection('xxx').find({}).count()
,然后通过站点访问相关数据看看有没有问题