mongodb db.copyDatabase() 的用法

这个命令只能在目的 mongod中运行
db.copyDatabase(fromdb, todb, fromhost, username, password, mechanism)

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

本实例数据库重命名(复制)
    use admin 
    db.copyDatabase("test","test1")  ###将数据库test 命名为 test1
复制远程库数据到本地
     use admin
    db.copyDatabase("test","test","192.168.201.130:5000","username","password","SCRAM-SHA-1")
注意:这个命令不是时间点快照,当源数据一直在变,复制的数据也是在变的,
    在目的数据库是不产生锁的,所以在复制的时候也能对这个库进行修改,不能用于分片

如果源库不是admin库 那必须有下列权限
{ resource: { db: "mySourceDB", collection: "" }, actions: [ "find", "listCollections", "listIndexes" ] },
    { resource: { db: "mySourceDB", collection: "system.js" }, actions: [ "find" ] },
如果源库是admin库 那必须有下列权限
{ resource: { db: "admin", collection: "" }, actions: [ "find",  "listCollections", "listIndexes" ] },
    { resource: { db: "admin", collection: "system.js" }, actions: [ "find" ] },
    { resource: { db: "admin", collection: "system.users" }, actions: [ "find" ] },
    { resource: { db: "admin", collection: "system.roles" }, actions: [ "find" ] },
    { resource: { db: "admin", collection: "system.version" }, actions: [ "find" ] }

猜你喜欢

转载自blog.csdn.net/brighter_xiao/article/details/81252424
今日推荐