濮阳杆衣贸易有限公司

主頁 > 知識庫 > Mongodb 刪除添加分片與非分片表維護(hù)

Mongodb 刪除添加分片與非分片表維護(hù)

熱門標(biāo)簽:兗州電話外呼營銷系統(tǒng) 南京400電話怎樣辦理 沈陽營銷電銷機(jī)器人招商 機(jī)器人外呼系統(tǒng)軟件存在問題 福州電銷機(jī)器人源代碼 高德地圖標(biāo)注商戶位置 智能電銷機(jī)器人銷售話術(shù) 徐州ai電銷機(jī)器人原理 企業(yè)智能外呼系統(tǒng)價(jià)格多少

MongoDB 是一個(gè)基于分布式文件存儲的數(shù)據(jù)庫。由 C++ 語言編寫。旨在為 WEB 應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。

MongoDB 是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。

一、如何移除分片

1、確認(rèn)balancer已經(jīng)開啟

mongos> sh.getBalancerState()
true

2、移除分片

注:在admin db下執(zhí)行命令。

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

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

同樣執(zhí)行

mongos> use admin
switched to db admin
mongos> db.runCommand( { removeShard: "shard3" } )
{
"msg" : "draining ongoing",
"state" : "ongoing",
"remaining" : {
"chunks" : NumberLong(3),
"dbs" : NumberLong(0)
},
"ok" : 1
}

remaining中的chunks表示還有多少數(shù)據(jù)塊未遷移。

4、移除未分片數(shù)據(jù)

In a cluster, a database with unsharded collections stores those collections only on a single shard.
That shard becomes the primary shard for that database. (Different databases in a cluster can have different primary shards.)
WARNING
Do not perform this procedure until you have finished draining the shard.
1)To determine if the shard you are removing is the primary shard for any of the cluster's databases, issue one of the following methods:
sh.status()
db.printShardingStatus()
In the resulting document, the databases field lists each database and its primary shard.
For example, the following database field shows that the products database uses mongodb0 as the primary shard:
{ "_id" : "products", "partitioned" : true, "primary" : "mongodb0" }
2)To move a database to another shard, use the movePrimary command. For example, to migrate all remaining unsharded data from mongodb0 to mongodb1,
issue the following command:
use admin
db.runCommand( { movePrimary: "products", to: "mongodb1" }) --products為db name
This command does not return until MongoDB completes moving all data, which may take a long time.
The response from this command will resemble the following:
{ "primary" : "mongodb1", "ok" : 1 }
If you use the movePrimary command to move un-sharded collections, you must either restart all mongos instances,
or use the flushRouterConfig command on all mongos instances before writing any data to the cluster.
This action notifies the mongos of the new shard for the database.
If you do not update the mongos instances' metadata cache after using movePrimary, the mongos may not write data to the correct shard.
To recover, you must manually intervene.

根據(jù)上面所說,遷移非分片表 時(shí) 最好停機(jī),在運(yùn)行db.runCommand( { movePrimary: "products", to: "mongodb1" }) 命令完成之后,刷新所有mongos后(所有mongos上運(yùn)行db.runCommand("flushRouterConfig")),再對外提供服務(wù)。當(dāng)然也可以重新啟動所有mongos實(shí)例 。

5、完成遷移

mongos> use admin
switched to db admin
mongos> db.runCommand( { removeShard: "shard3" } )
{
"msg" : "removeshard completed successfully",
"state" : "completed",
"shard" : "shard3",
"ok" : 1
}

如果state為 completed,表示已完成遷移。

二、添加分片

1、首先確認(rèn)balancer已經(jīng)開啟

mongos> sh.getBalancerState()
true

2、執(zhí)行添加分片的命令

如果出現(xiàn)以下錯誤,刪除目標(biāo)shard3上的test1數(shù)據(jù)庫,再次執(zhí)行命令

mongos> sh.addShard("shard3/192.168.137.138:27019")
{
"ok" : 0,
"errmsg" : "can't add shard shard3/192.168.137.138:27019 because a local database 'test1' exists in another shard1:shard1/192.168.137.111:27017,192.168.137.75:27017"
}
mongos> sh.addShard("shard3/192.168.137.138:27019")
{ "shardAdded" : "shard3", "ok" : 1 }

最后運(yùn)行sh.status()命令確認(rèn)遷移是否成功,可能會花比較長的時(shí)間。

以上內(nèi)容是給大家介紹了Mongodb 刪除添加分片與非分片表維護(hù)的全部敘述,希望對大家有所幫助。

您可能感興趣的文章:
  • 如何為MongoDB添加分片副本集
  • 分布式文檔存儲數(shù)據(jù)庫之MongoDB分片集群的問題
  • MongoDB搭建高可用集群的完整步驟(3個(gè)分片+3個(gè)副本)
  • Mongodb副本集和分片示例詳解
  • MongoDB分片集群部署詳解
  • MongoDB分片在部署與維護(hù)管理中常見的事項(xiàng)總結(jié)大全
  • 詳解MongoDB4.0構(gòu)建分布式分片群集
  • MongoDB分片鍵的選擇和案例實(shí)例詳解
  • MongoDB分片詳解
  • mongodb分片技術(shù)_動力節(jié)點(diǎn)Java學(xué)院整理
  • mongodb3.4集群搭建實(shí)戰(zhàn)之高可用的分片+副本集
  • 深入理解MongoDB分片的管理
  • MongoDB 主分片(primary shard)相關(guān)總結(jié)

標(biāo)簽:丹東 邯鄲 吉安 本溪 昭通 大理 景德鎮(zhèn) 鶴崗

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mongodb 刪除添加分片與非分片表維護(hù)》,本文關(guān)鍵詞  Mongodb,刪除,添加,分片,與,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mongodb 刪除添加分片與非分片表維護(hù)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Mongodb 刪除添加分片與非分片表維護(hù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    九江市| 曲水县| 五大连池市| 额尔古纳市| 迭部县| 大化| 化州市| 木里| 蓬莱市| 青川县| 城固县| 东平县| 灵川县| 同心县| 大方县| 杭锦后旗| 静海县| 成武县| 海安县| 湘阴县| 斗六市| 运城市| 洛阳市| 利津县| 彭泽县| 桂东县| 博湖县| 建昌县| 乌拉特前旗| 海丰县| 修武县| 根河市| 融水| 孟津县| 尉犁县| 大余县| 海兴县| 宜阳县| 商洛市| 饶河县| 冷水江市|