迁移
1 2 3 4 5 6
| mongodump --host 127.0.0.1 --port 27017 \ -u admin -p 123456 --authenticationDatabase admin \ --db watt \ --out ./mongodumps \ --gzip
|
1 2 3 4 5 6 7 8 9 10 11
| mongo --host 127.1 --port 27017 -u admin -p 123456 --authenticationDatabase admin
use admin db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]}) db.auth("admin","123456")
db.grantRolesToUser( "admin" , [ { role: "dbOwner", db: "admin" }, { "role": "clusterAdmin", "db": "admin" }, { "role": "userAdminAnyDatabase", "db": "admin" }, { "role": "dbAdminAnyDatabase", "db": "admin" }])
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| use admin db.grantRolesToUser("admin", [ { role: "readWrite", db: "watt" }, { role: "dbAdmin", db: "watt" } ]) mongorestore -h 127.0.0.1 -u admin -p 123456 --authenticationDatabase admin --nsInclude="watt.*" --drop ./mongodumps --gzip
["colony", "colonyDataInfo", "colonyGroup", "colonyLink", "colonyStatus"].forEach(coll => { db.getCollection(coll).deleteMany({}) print(`已清空集合 ${coll}`) })
|
重新选举primary
1 2 3 4 5 6 7 8 9 10 11
| mongo --host 127.1 --port 27017 -u admin -p 123456 --authenticationDatabase admin
rs.status().members.map(m => { return { name: m.name, stateStr: m.stateStr, optime: m.optime, health: m.health }; });
mongo --host <目标Secondary_IP> --eval 'rs.freeze(120)' -u admin -p search --authenticationDatabase admin
mongo --host 127.1 --port 27017 --eval 'rs.stepDown(60)' -u admin -p search --authenticationDatabase admin
|
另一个方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| mongo --host 127.1 --port 27017 -u admin -p 123456 --authenticationDatabase admin
cfg = rs.conf() printjson(cfg.members)
cfg.members[1].priority = 5
cfg.members[0].priority = 0.5 cfg.members[2].priority = 0.5
rs.reconfig(cfg)
|
下线旧机器
1
| rs.remove("<secondary_ip:port>");
|
附录:常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| use admin show dbs show collections
db.dataInfo.find() db.dataInfo.count()
db.dataInfo.find( { data_name: { $regex: /^searchV7.*/ } }, { data_name: 1, data_edition: 1} )
db.dataInfo.aggregate([ { $match: { data_name: { $regex: /^searchV7.*/ }, reload_mode: "restart" } } ]).pretty()
|
ref
https://blog.csdn.net/fly0512/article/details/107180802