mongoDB-3.x集群管理
一.查看集群配置
1.列出己分片集群
use config
db.databases.find( { "partitioned": true } )
db.databases.find() #列出所以database
2.列出分片
use admin
db.runCommand( { listShards : 1 } )
3.列出集群明细
db.printShardingStatus() or sh.status()
二.迁移config
server
迁移完后,如有必要,请重启mongos,并重新指定configdb
三.迁移Replica
Set Shard
To migrate a sharded cluster, migrate each member separately. First
migrate the non-primary members, and then migrate
the primary last.
1.禁用自动负载
sh.stopBalancer()
2.迁移shard
方式一:在线迁移
先把SECONDARY迁完,并正常启动使其与PRIMARY通信正常后
step down PRIMARY,使Replica
Shard自动Failover挑选出新的PRIMARY后,再迁旧的PRIMARY
如:2节点迁移,shard-p,shard-s迁移到shard-p1,shard-s1
i.把新节点加到现有的Replica
shard
在primary节点mongo shell下通过rs.add()来添加
rs.add("192.168.192.31:27018")
rs.add("192.168.192.41:27018")
ii.停掉待迁移的shard-s(SECONDARY)
iii.stepDown
shard-p(PRIMARY)
让Replica自动Failover到新的shard上
v.移除老的Replica shard成员
rs.remove("192.168.192.11:27018")
rs.remove("192.168.192.21:27018")
方式二:离线迁移
新mongodb安装配置好,不启动
i.同步数据库
rsync -az /opt/mongodb/db 192.168.192.31:/opt/mongodb/db
rsync -az /opt/mongodb/db 192.168.192.41:/opt/mongodb/db
数据库同步后,请检查权限,属组,属主无误后,启动
ii.制作Replica shard
iii.添加shards到集群
sh.addShard('rs2/192.168.192.31:27018,192.168.192.41:27018')
v.移除老的Replica shard
use admin
db.runCommand({moveprimary: 'test',to:
'rs1/192.168.192.12:27018,192.168.192.22:27018'})
db.runCommand({removeshard:
'rs0/192.168.192.11:27018,192.168.192.21:27018'})
注意:如果是移除Primary Replica shard则需要先将要其中的数据库手动移动到其它Replica shard后才能执行移除操作
3.重新启用负载
sh.setBalancerState(true)