我有一个集合在2个分片rs01
和rs02
今天我在群集中添加了一个新的分片rs03
。
我已按sh.status()
检查了平衡器状态,如下所示:
shards:
{ "_id" : "rs01", "host" : "rs01/mongo30-01:27017,mongo30-02:27017" }
{ "_id" : "rs02", "host" : "rs02/mongo30-03:27017,mongo30-04:27017" }
{ "_id" : "rs03", "host" : "rs03/mongo30-05:27017,mongo30-06:27017" }
balancer:
Currently enabled: yes
Currently running: yes
并且一些块已经迁移到rs03
{ "_id" : "myDB", "partitioned" : true, "primary" : "rs01" }
myDB.myCo
shard key: { "_id" : 1 }
chunks:
rs01 20027
rs02 19532
rs03 8
我发现我在rs03
上设置的内存太少了。
我在mongod
上停止了rs03
服务,添加了内存并在重启后启动它。
几个小时后,我发现迁移的块仍然是8
。
我通过rs03
检查了db.currentOp()
主要操作,如下所示:
{
"inprog": [
{
"desc": "migrateThread",
"threadId": "0x22677e00",
"opid": 206642,
"active": true,
"secs_running": 19754,
"microsecs_running": NumberLong("19754679731"),
"op": "none",
"ns": "myDB.myCo",
"query": {
},
"msg": "step 2 of 6",
"numYields": 0,
"locks": {
},
"waitingForLock": false,
"lockStats": {
"Global": {
"acquireCount": {
"r": NumberLong("662"),
"w": NumberLong("660")
}
},
"Database": {
"acquireCount": {
"r": NumberLong("1"),
"w": NumberLong("659"),
"W": NumberLong("1")
}
},
"Collection": {
"acquireCount": {
"r": NumberLong("1"),
"w": NumberLong("330"),
"W": NumberLong("1")
}
},
"oplog": {
"acquireCount": {
"w": NumberLong("328")
}
}
}
},
opid保持为" 6"的第2步;好几个小时
我可以做些什么来进行迁移?
我试图杀死opid,它仍然再次分叉" 6"的第2步现在。
sh.status()
中的数据块仍为8
。