麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MongoDB > 正文

Mongodb 刪除添加分片與非分片表維護

2020-10-29 18:50:14
字體:
來源:轉載
供稿:網友

MongoDB 是一個基于分布式文件存儲的數據庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。

MongoDB 是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。

一、如何移除分片

1、確認balancer已經開啟

mongos> sh.getBalancerState()
true

2、移除分片

注:在admin db下執行命令。

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

3、檢查遷移的狀態

同樣執行

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

remaining中的chunks表示還有多少數據塊未遷移。

4、移除未分片數據

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.

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

5、完成遷移

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

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

二、添加分片

1、首先確認balancer已經開啟

mongos> sh.getBalancerState()
true

2、執行添加分片的命令

如果出現以下錯誤,刪除目標shard3上的test1數據庫,再次執行命令

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 }

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91看片免费版 | 91久久另类重口变态 | 色骚综合| 中文字幕在线视频网站 | 亚洲视频在线视频 | 国产69精品久久久久久 | 国产99久久 | 久久精品国产99久久久古代 | 日韩中文字幕一区二区三区 | 国产三级在线观看a | 免费观看一区二区三区视频 | 国产88久久久国产精品免费二区 | 国产亚洲精彩视频 | 久久久久久三区 | 国产噜噜噜噜噜久久久久久久久 | 中文字幕网在线 | av免费在线观看国产 | 蜜桃成品人免费视频 | 久久综合艹 | 18视频在线观看娇喘 | 国产中文99视频在线观看 | 一级网站| 日韩av电影在线观看 | 亚洲国产成人久久一区www妖精 | 中文字幕亚洲一区二区三区 | 欧美视频一区二区三区在线观看 | 国产精品成人一区二区三区电影毛片 | 欧美一区2区三区4区公司二百 | 男女生羞羞视频网站在线观看 | 一级一级一级一级毛片 | 国产男女爽爽爽爽爽免费视频 | 精品成人网 | 精品日韩欧美 | 久久国产精品99国产 | 午夜小视频免费观看 | 欧美日韩中文字幕在线视频 | 久色精品视频 | 精品久久久久久亚洲精品 | 国产精品亚洲一区二区三区在线观看 | 中文字幕欧美专区 | 日韩av片在线免费观看 |