mongoDB-3.x集群管理

mongoDB-3.x集群管理

一.查看集群配置
1.列出己分片集群
use config
db.databases.find( { "partitioned": true } )
db.databases.find() #列出所以database
mongoDB-3.x集群管理
2.列出分片
use admin
db.runCommand( { listShards : 1 } )
mongoDB-3.x集群管理
3.列出集群明细
db.printShardingStatus() or sh.status()
mongoDB-3.x集群管理

二.迁移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()
mongoDB-3.x集群管理

mongoDB-3.x集群管理

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上
mongoDB-3.x集群管理
iv.停掉待迁移的shard-p(PRIMARY)
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后才能执行移除操作
mongoDB-3.x集群管理

mongoDB-3.x集群管理
可以看到,test 数据库正在移动到rs1, 所以再执行removeshard时报了个警告,所以需要等先数据迁移完成后,才能移除rs0
mongoDB-3.x集群管理
mongoDB-3.x集群管理
rs0移除后,shards就剩下rs1了
3.重新启用负载
sh.setBalancerState(true)
mongoDB-3.x集群管理

posted @ 2016-01-13 09:03  李庆喜  阅读(227)  评论(0编辑  收藏  举报