mongodb 复制远程和本地数据库 db.copyData
更新:HHH   时间:2023-1-7


    很还念mysqldbcopy和oracle 12c pdb直接的相互copy,复制、迁移数据、准备开发测试环境会上瘾的,今天要迁移和准备多套mongodb数据库做生产和测试使用,发现mongodb也有这个功能,而且是内置,喜出望外,特记录一下:

db.copyDatabase:
参数说明:
db.copyDatabase(fromdb, todb, fromhost, username, password, mechanism)
fromdb:string 源数据库名称,用户必须能够对这个db进行鉴权
todb:string 复制到目的mongod的名字,名字可以跟原名字不一样
fromhost:string 可选项 ip+port 如果是同一mongd 复制,则忽略该项
username:string 可选项 源主机用户名
password: string 可选项 源主机用户名所对应的密码
mechanism: 有 MONGODB-CR or SCRAM-SHA-1这2种 , db.isMaster().maxWireVersion 值大于等于3 那默认就是 SCRAM-SHA-1 否则默认就是 MONGODB-CR(2.6版本的鉴权)

db.copyDatabase("db_chunqiu", "db_chunqiu", "192.168.56.105","db_user","db_user123");

同实例里面复制一个数据库:
repsetzhou:PRIMARY> db.copyDatabase("data","data_1")
{ "ok" : 1 }

复制远程数据库(192.168.56.105 db_chunqiu):
repsetzhou:PRIMARY> db.copyDatabase("db_chunqiu", "db_clone", "192.168.56.105:27017","db_user","db_user123");
{ "done" : true, "ok" : 1 }
repsetzhou:PRIMARY> show dbs
admin 0.000GB
data 0.030GB
data_1 0.029GB
db_clone 0.000GB
local 0.101GB

复制远程数据库(192.168.56.105 db_chunqiu)无密码认证:
repsetzhou:PRIMARY> db.copyDatabase("db_chunqiu", "db_clone2", "192.168.56.105:27017");
{ "ok" : 1 }

返回MongoDB数据库教程...