溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MongoDB Sharding學習操作篇二

發(fā)布時間:2020-07-21 11:01:35 來源:網(wǎng)絡 閱讀:573 作者:自由linux 欄目:MongoDB數(shù)據(jù)庫

接上一篇

14.配置集群中的balancer進程

balancer進程運行在集群中的某一個mongos實例上,確保chunks均勻分布在整個集群上。


更改指定shard的最大存儲大小




15.移除已有分片集群中的一個分片

在移除一個分片之前需要先確保這個分片上的數(shù)據(jù)已經(jīng)移動到其他分片上。

1)確保Blancer進程已經(jīng)開啟

sh.getBalancerState()

2)確定需要被移除的分片名稱

db.adminCommand( { listShards: 1 } )

或者

db.printShardingStatus()

或者

sh.status()


3)移走分片上的數(shù)據(jù)塊

mongos> use admin;
switched to db admin
mongos> db.runCommand({removeShard : "taiwan_shard1"})
{
	"msg" : "draining started successfully",
	"state" : "started",
	"shard" : "taiwan_shard1",
	"ok" : 1
}


根據(jù)網(wǎng)絡狀況和數(shù)據(jù)量大小,這個操作可能花費幾分鐘或者幾天時間完成


4)檢查遷移的狀態(tài)

mongos> db.runCommand({removeShard : "taiwan_shard1"})
{
	"msg" : "draining ongoing",
	"state" : "ongoing",
	"remaining" : {
		"chunks" : NumberLong(0),
		"dbs" : NumberLong(2)
	},
	"note" : "you need to drop or movePrimary these databases",
	"dbsToMove" : [
		"taiwan_game4",
		"taiwan_game5"
	],
	"ok" : 1
}


這里需要注意的是,如果一個分片是一個或者多個數(shù)據(jù)庫的primary shard,那么這個分片上就存有未被分片的數(shù)據(jù)。

mongos> use admin;
switched to db admin
mongos> db.runCommand( { movePrimary: "taiwan_game4", to: "taiwan_shard2" })
{
	"primary " : "taiwan_shard2:taiwan_shard2/gintama-taiwan-mongodb2:28018",
	"ok" : 1
}
mongos> db.runCommand( { movePrimary: "taiwan_game5", to: "taiwan_shard2" })
{
	"primary " : "taiwan_shard2:taiwan_shard2/gintama-taiwan-mongodb2:28018",
	"ok" : 1
}


5)結束遷移過程

mongos> db.runCommand({removeShard : "taiwan_shard1"})
{
	"msg" : "removeshard completed successfully",
	"state" : "completed",
	"shard" : "taiwan_shard1",
	"ok" : 1
}

當state狀態(tài)為completed時,遷移完成。




參考文檔:

http://docs.mongodb.org/v2.4/tutorial/remove-shards-from-cluster/


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI