mongodb sharding ( replica set + sharding) 移除shard节点详解大数据

os: centos 7.4
monggo: 3.6.6

mongodb replicat set + sharding 规划如下:

192.168.56.101 node1 configserver replset(27017、27018、27019)

192.168.56.102 node2 mongos(27017、27018、27019)

192.168.56.103 node3 shard1 replset(27017、27018、27019)
192.168.56.104 node4 shard2 replset(27017、27018、27019)
192.168.56.105 node5 shard3 replset(27017、27018、27019)
192.168.56.106 node6 shard4 replset(27017、27018、27019)

现在移除一个 shard4

node6 从 mongodb sharding 移除

node2 登录 mongos

$ mongo --port 27017 
 
mongos> use admin 
mongos> db.auth('root','rootroot') 
mongos> show dbs 
mongos> use config 
mongos> sh.status() 
 
mongos> db.adminCommand({removeShard:"shard4"}) 
{ 
    "msg" : "draining started successfully", 
    "state" : "started", 
    "shard" : "shard4", 
    "note" : "you need to drop or movePrimary these databases", 
    "dbsToMove" : [ ], 
    "ok" : 1, 
    "$clusterTime" : { 
        "clusterTime" : Timestamp(1532426167, 3), 
        "signature" : { 
            "hash" : BinData(0,"tp0QX4bjy1hJ4Xt29XDYOKoxwuQ="), 
            "keyId" : NumberLong("6581372726341009427") 
        } 
    }, 
    "operationTime" : Timestamp(1532426167, 3) 
} 
 
mongos> sh.status() 
--- Sharding Status ---  
  sharding version: { 
    "_id" : 1, 
    "minCompatibleVersion" : 5, 
    "currentVersion" : 6, 
    "clusterId" : ObjectId("5b55bba0b4856e5663e0a7ad") 
  } 
  shards: 
        {  "_id" : "shard1",  "host" : "shard1/192.168.56.103:27017,192.168.56.103:27018,192.168.56.103:27019",  "state" : 1 } 
        {  "_id" : "shard2",  "host" : "shard2/192.168.56.104:27017,192.168.56.104:27018,192.168.56.104:27019",  "state" : 1 } 
        {  "_id" : "shard3",  "host" : "shard3/192.168.56.105:27017,192.168.56.105:27018,192.168.56.105:27019",  "state" : 1 } 
        {  "_id" : "shard4",  "host" : "shard4/192.168.56.106:27017,192.168.56.106:27018,192.168.56.106:27019",  "state" : 1,  "draining" : true }

可以看到 shard4 显示为 draining ,等把 shard4 分散到其余shard节点后,这个节点就算移除完成了。

验证

node2 登录mongos

$ mongo --port 27018 
 
mongos> use admin 
mongos> db.auth('root','rootroot') 
mongos> show dbs 
mongos> use config 
mongos> db.getCollectionNames() 
[ 
    "actionlog", 
    "changelog", 
    "chunks", 
    "collections", 
    "databases", 
    "lockpings", 
    "locks", 
    "migrations", 
    "mongos", 
    "settings", 
    "shards", 
    "tags", 
    "transactions", 
    "version" 
] 
 
mongos> db.mongos.find() 
{ "_id" : "node2:27017", "advisoryHostFQDNs" : [ ], "mongoVersion" : "3.6.6", "ping" : ISODate("2018-07-23T20:24:55.557Z"), "up" : NumberLong(9356), "waiting" : true } 
{ "_id" : "node2:27018", "advisoryHostFQDNs" : [ ], "mongoVersion" : "3.6.6", "ping" : ISODate("2018-07-23T20:24:55.558Z"), "up" : NumberLong(9351), "waiting" : true } 
{ "_id" : "node2:27019", "advisoryHostFQDNs" : [ ], "mongoVersion" : "3.6.6", "ping" : ISODate("2018-07-23T20:24:55.559Z"), "up" : NumberLong(9346), "waiting" : true } 
 
mongos> db.shards.find() 
{ "_id" : "shard1", "host" : "shard1/192.168.56.103:27017,192.168.56.103:27018,192.168.56.103:27019", "state" : 1 } 
{ "_id" : "shard2", "host" : "shard2/192.168.56.104:27017,192.168.56.104:27018,192.168.56.104:27019", "state" : 1 } 
{ "_id" : "shard3", "host" : "shard3/192.168.56.105:27017,192.168.56.105:27018,192.168.56.105:27019", "state" : 1 } 
 
mongos> sh.status() 
 

参考:
IT虾米网
IT虾米网
IT虾米网

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/9835.html

(0)
上一篇 2021年7月19日 11:36
下一篇 2021年7月19日 11:36

相关推荐

发表回复

登录后才能评论