亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

MongoDB的分片集群基本配置教程

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

為何要分片
1.減少單機請求數(shù),降低單機負載,提高總負載
2.減少單機的存儲空間,提高總存空間。

201674182235371.png (700×671)

常見的mongodb sharding 服務器架構

201674182308184.png (600×411)

要構建一個 MongoDB Sharding Cluster,需要三種角色:
1.Shard Server
即存儲實際數(shù)據(jù)的分片,每個Shard可以是一個mongod實例,也可以是一組mongod實例構成的Replication Set。為了實現(xiàn)每個Shard內部的auto-failover(自動故障切換),MongoDB官方建議每個Shard為一組Replica Set。
2.Config Server
為了將一個特定的collection存儲在多個shard中,需要為該collection指定一個shard key(片鍵),例如{age: 1} ,shard key可以決定該條記錄屬于哪個chunk(分片是以chunk為單位,后續(xù)會介紹)。Config Servers就是用來存儲:所有shard節(jié)點的配置信息、每個chunk的shard key范圍、chunk在各shard的分布情況、該集群中所有DB和collection的sharding配置信息。
3.Route Process
這是一個前端路由,客戶端由此接入,然后詢問Config Servers需要到哪個Shard上查詢或保存記錄,再連接相應的Shard進行操作,最后將結果返回給客戶端??蛻舳酥恍枰獙⒃景l(fā)給mongod的查詢或更新請求原封不動地發(fā)給Routing Process,而不必關心所操作的記錄存儲在哪個Shard上。(所有操作在mongos上操作即可)

配置分片服務器
下面我們在同一臺物理機器上構建一個簡單的 Sharding Cluster:

201674182342696.gif (371×298)

Shard Server 1:27017Shard Server 2:27018Config Server :27027Route Process:40000

1.步驟一: 啟動Shard Server

mkdir -p ./data/shard/s0 ./data/shard/s1 #創(chuàng)建數(shù)據(jù)目錄mkdir -p ./data/shard/log # 創(chuàng)建日志目錄./bin/mongod --port 27017 --dbpath /usr/local/mongodb/data/shard/s0 --fork --logpath /usr/local/mongodb/data/shard/log/s0.log # 啟動Shard Server實例1./bin/mongod --port 27018 --dbpath /usr/local/mongodb/data/shard/s1 --fork --logpath /usr/local/mongodb/data/shard/log/s1.log # 啟動Shard Server實例2

步2.驟二: 啟動Config Server

mkdir -p ./data/shard/config #創(chuàng)建數(shù)據(jù)目錄./bin/mongod --port 27027 --dbpath /usr/local/mongodb/data/shard/config --fork --logpath /usr/local/mongodb/data/shard/log/config.log #啟動Config Server實例

注意,這里我們完全可以像啟動普通mongodb服務一樣啟動,不需要添加―shardsvr和configsvr參數(shù)。因為這兩個參數(shù)的作用就是改變啟動端口的,所以我們自行指定了端口就可以
3.步驟三: 啟動Route Process
./bin/mongos --port 4000 --configdb localhost:27027 --fork --logpath /usr/local/mongodb/data/shard/log/route.log --chunkSize=1 # 啟動Route Server實例
mongos啟動參數(shù)中,chunkSize這一項是用來指定chunk的大小的,單位是MB,默認大小為200MB,為了方便測試Sharding效果,我們把chunkSize指定為 1MB。意思是當這個分片中插入的數(shù)據(jù)大于1M時開始進行數(shù)據(jù)轉移
4.步驟四: 配置Sharding

# 我們使用MongoDB Shell登錄到mongos,添加Shard節(jié)點./bin/mongo admin --port 40000 #此操作需要連接admin庫> db.runCommand({ addshard:"localhost:27017" }) #添加 Shard Server 或者用 sh.addshard()命令來添加,下同;{ "shardAdded" : "shard0000", "ok" : 1 }> db.runCommand({ addshard:"localhost:27018" }){ "shardAdded" : "shard0001", "ok" : 1 }> db.runCommand({ enablesharding:"test" }) #設置分片存儲的數(shù)據(jù)庫{ "ok" : 1 }> db.runCommand({ shardcollection: "test.users", key: { id:1 }}) # 設置分片的集合名稱。且必須指定Shard Key,系統(tǒng)會自動創(chuàng)建索引,然后根據(jù)這個shard Key來計算{ "collectionsharded" : "test.users", "ok" : 1 } > sh.status(); #查看片的狀態(tài) > printShardingStatus(db.getSisterDB("config"),1); # 查看片狀態(tài)(完整版); > db.stats(); # 查看所有的分片服務器狀態(tài)

注意這里我們要注意片鍵的選擇,選擇片鍵時需要根據(jù)具體業(yè)務的數(shù)據(jù)形態(tài)來選擇,切不可隨意選擇,實際中尤其不要輕易選擇自增_id作為片鍵,除非你很清楚你這么做的目的,具體原因我不在此分析,根據(jù)經驗推薦一種較合理的片鍵方式,“自增字段+查詢字段”,沒錯,片鍵可以是多個字段的組合。
另外這里說明一點,分片的機制:mongodb不是從單篇文檔的級別,絕對平均的散落在各個片上, 而是N篇文檔,形成一個塊"chunk",優(yōu)先放在某個片上, 當這片上的chunk,比另一個片的chunk區(qū)別比較大時(>=3) ,會把本片上的chunk,移到另一個片上, 以chunk為單位,維護片之間的數(shù)據(jù)均衡。
也就是說,一開始插入數(shù)據(jù)時,數(shù)據(jù)是只插入到其中一塊分片上的,插入完畢后,mongodb內部開始在各片之間進行數(shù)據(jù)的移動,這個過程可能不是立即的,mongodb足夠智能會根據(jù)當前負載決定是立即進行移動還是稍后移動。
在插入數(shù)據(jù)后,立馬執(zhí)行db.users.stats();兩次可以驗證如上所說。
這種分片機制,節(jié)省了人工維護成本,但是由于其是優(yōu)先往某個片上插入,等到chunk失衡時,再移動chunk,并且隨著數(shù)據(jù)的增多,shard的實例之間,有chunk來回移動的現(xiàn)象,這將會為服務器帶來很大的IO開銷,解決這種開銷的方法,就是手動預先分片;

手動預先分片
以shop.user表為例:

sh.shardCollection(‘shop.user',{userid:1}); # user表用userid做shard keyfor(var i=1;i<=40;i++) { sh.splitAt('shop.user',{userid:i*1000}) } # 預先在1K 2K...40K這樣的界限切好chunk(雖然chunk是空的), 這些chunk將會均勻移動到各片上.
通過mongos添加user數(shù)據(jù). 數(shù)據(jù)會添加到預先分配好的chunk上, chunk就不會來回移動了.

repliction set and shard
一般mongoDB如果真的到了分片的級別后,那片服務器避無可免的要用到復制集,部署的基本思路同上,只需要注意兩點:
sh.addShard( host ) server:port OR setname/server:port # 如果是復制集的片服務器,我們應該復制集的名稱寫在前面比如
sh.addShard('ras/192.168.42.168:27017'); # 27017也就是復制集中的primary
另外在啟動本機的mongod服務的時候,最好把ip也給寫進去,否則有可能會有不可預知的錯誤。

查看分片配置的方法:

1.列舉使用分片的數(shù)據(jù)庫
為了列舉使用分片的數(shù)據(jù)庫,需要查詢Config數(shù)據(jù)庫。如果partitioned域值為true,則這個庫使用了分片技術。
連接一個mongos實例,運行命令獲取使用分片功能的數(shù)據(jù)庫:

use configdb.databases.find( { "partitioned" : true} )

例如:使用以下命令返回集群中的所有數(shù)據(jù)庫

use configdb.databases.find()

如果返回結果:

{ "_id" : "admin", "partitioned" : false, "primary" : "config" }{ "_id" : "mydb", "partitioned" : true, "primary" : "firstset" }{ "_id" : "test", "partitioned" : false, "primary" : "secondset" }

顯示只有mydb使用了分片。

2.列舉所有的分片
為了列舉當前集合的所有分片,使用listShards命令:

use admindb.runCommand( { listShards : 1 })

返回結果:

{    "shards" : [        {            "_id" : "firstset",            "host" : "firstset/mongo01:10001,mongo01:10002,mongo01:10003"        },        {            "_id" : "secondset",            "host" : "secondset/mongo01:30001,mongo01:30002,mongo01:30003"        }    ],    "ok" : 1}

3.查看集群的詳細信息
為了查看集群的詳細信息,可以使用db.printShardingStatus()或者sh.status()。所有的方法返回同樣的結果。
例如,使用

sh.status()

查看信息:

--- Sharding Status ---  sharding version: {    "_id" : 1,    "version" : 4,    "minCompatibleVersion" : 4,    "currentVersion" : 5,    "clusterId" : ObjectId("535a2dab0063b308757e1b70")} shards:    { "_id" : "firstset", "host" : "firstset/mongo01:10001,mongo01:10002,mongo01:10003" }    { "_id" : "secondset", "host" : "secondset/mongo01:30001,mongo01:30002,mongo01:30003" } databases:    { "_id" : "admin", "partitioned" : false, "primary" : "config" }    { "_id" : "mydb", "partitioned" : true, "primary" : "firstset" }        mydb.test_collection            shard key: { "name" : 1 }            chunks:                secondset    6                firstset    6            { "name" : { "$minKey" : 1 } } -->> { "name" : "cat" } on : secondset Timestamp(2, 0)             { "name" : "cat" } -->> { "name" : "cow" } on : secondset Timestamp(3, 0)             { "name" : "cow" } -->> { "name" : "dog" } on : secondset Timestamp(4, 0)             { "name" : "dog" } -->> { "name" : "dragon" } on : secondset Timestamp(5, 0)             { "name" : "dragon" } -->> { "name" : "elephant" } on : secondset Timestamp(6, 0)             { "name" : "elephant" } -->> { "name" : "horse" } on : secondset Timestamp(7, 0)             { "name" : "horse" } -->> { "name" : "lion" } on : firstset Timestamp(7, 1)             { "name" : "lion" } -->> { "name" : "pig" } on : firstset Timestamp(1, 7)             { "name" : "pig" } -->> { "name" : "rabbit" } on : firstset Timestamp(1, 8)             { "name" : "rabbit" } -->> { "name" : "snake" } on : firstset Timestamp(1, 9)             { "name" : "snake" } -->> { "name" : "tiger" } on : firstset Timestamp(1, 10)             { "name" : "tiger" } -->> { "name" : { "$maxKey" : 1 } } on : firstset Timestamp(1, 11)     { "_id" : "test", "partitioned" : false, "primary" : "secondset" }

(1)sharding version展示了分片元數(shù)據(jù)的版本號。
(2)shards展示了在集群中被作為分片的mongod實例。
(3)databases展示了集群中所有的數(shù)據(jù)庫,包括沒有使用分片功能的庫。
(4)chunks信息展示了mydb庫的每個分片上有多少個塊和每個塊的范圍。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产大片免费看| 欧美午夜不卡影院在线观看完整版免费| 中文字幕一区二区在线播放| 国产精品va在线观看无码| 亚洲人成网站在线播| 在线看国产一区| 欧美不卡一区二区三区四区| 两性午夜免费视频| 成人黄色av免费在线观看| 青春草视频在线观看| 亚洲成人a级片| 911国产精品| 99久久无色码| 国产精品免费久久久久影院| 九七伦理97伦理手机| 国产九色精品成人porny| 国产成人久久777777| 男女作爱免费网站| 国产精品2020| 国产老女人乱淫免费| 亚洲欧洲综合| 久久精品日韩精品| 同性视频网站免费男| 欧美巨大xxxx做受沙滩| 国产精品99久久久久久久vr| 人妻 日韩 欧美 综合 制服| 一区二区三区精品牛牛| 国产chinasex对白videos麻豆| 裸体免费网站| 精品久久久久久无码国产| 国产精品一二三四五区| 日韩精品电影| 蜜桃av噜噜一区二区三区小说| 亚洲色图欧美另类| xfplay每日更新av资源| 992tv快乐视频| 天天免费综合色| 奇米影视四色在观看线| 久久综合久久色| av免费不卡国产观看| 一级片一级片一级片| 亚洲精选中文字幕| 高清一区二区三区四区五区| 99reav2| 成人看片网站| 亚洲三级免费观看| 在线黄色av| 一区二区理论电影在线观看| 国产精品99久久久久久久久| 欧美极品少妇xxxxⅹ裸体艺术| 久久久国产亚洲精品| 国产又粗又爽视频| 视频午夜在线| 非洲黑人最猛性xxxx交| 日本亚洲欧美美色| 日韩精品一区二区三区四区视频| 91禁国产网站| 白白色免费视频| 无码少妇一区二区三区| 日韩a一区二区| 国产剧情在线观看一区二区| 熟女俱乐部一区二区| 欧美精品成人在线| 精品亚洲一区二区三区| 亚洲人成电影在线观看网| 亚洲欧美激情插| 男女av在线| 国产精品福利观看| 日韩精品中午字幕| 免费一级做a爰片久久毛片潮| 国产传媒一区二区| 97视频在线免费观看| 成人激情电影一区二区| 亚洲国产精品悠悠久久琪琪| 最近2019中文字幕第三页视频| 97在线观看免费高清| 亚洲狠狠婷婷综合久久蜜桃| 亚洲精品欧美二区三区中文字幕| 日韩欧美中文字幕公布| 超碰97av在线| 亚洲综合天堂网| 久久黄色片视频| 在线观看国产视频| 海角国产乱辈乱精品视频| 一区二区三区麻豆| 熟女丰满老熟女熟妇| 92福利视频午夜1000合集在线观看| 成人小视频免费看| 在线观看亚洲一区| 五月激情久久久| 国产精品v日韩精品| 在线免费av电影| 国产毛片一区二区三区| 一区二区三区四区欧美日韩| 成人全视频免费观看在线看| 亚洲午夜久久久| 亚洲高清视频在线播放| 中文字幕第一页在线播放| 91大神影片| 午夜免费视频在线国产| 网友自拍亚洲| 99综合视频| 91麻豆精品国产综合久久久久久| 久久av中文字幕片| 日韩一级中文字幕| 国产精品正在播放| 亚洲综合网中心| 亚洲一区二区偷拍| 天堂www中文在线资源| 91丨九色丨丰满| 宅男宅女性影片资源在线1| 成人欧美在线观看| 成人精品视频一区二区三区| 一区二区国产日产| 亚洲精品456| 日本一区二区三区四区高清视频| 99久热在线精品视频观看| 亚洲日产国产精品| 亚洲黄色三级| 久色视频在线播放| 九九热在线视频观看这里只有精品| 在线观看国产精品入口男同| 亚洲中字黄色| 六月婷婷在线视频| www.亚洲激情| 欧美黑人性视频| 精品人妻伦一二三区久| 亚洲免费在线电影| 爱福利视频一区二区| 欧美v国产在线一区二区三区| 国产资源在线播放| 国产无遮挡又黄又爽在线观看| 九色porny在线| 亚洲综合图片网| 青青草视频一区| 精品国产乱码| 欧美一区二区三区精品电影| 久久久久久国产免费| 亚洲成人av一区二区| 91福利免费观看| 另类视频在线| 后入内射欧美99二区视频| 日韩av综合网站| 国产精品日韩久久久久| √8天堂资源地址中文在线| 人妻少妇精品无码专区二区| 亚洲高清国产拍精品26u| 丁香六月激情综合| www亚洲成人| 天天操天天干天天做| 久久成人av少妇免费| 国产日韩欧美在线播放| 日本在线天堂| 日韩精品电影在线| 久久久一区二区三区| 国产乱码精品| av中文在线资源| 久久嫩草精品久久久精品| 精品国产精品国产精品| 不卡大黄网站免费看| 亚洲精品免费一区亚洲精品免费精品一区| 精品产国自在拍| av在线官网| 国产精品久久久久久久无码| 国产毛片毛片| 男人的天堂99| 国产精品永久入口久久久| 中文字幕乱码在线人视频| 天天干天天操天天爽| 欧美性天天影院| 亚洲激情啪啪| abab456成人免费网址| 国产欧美精品一区二区三区介绍| 日韩亚洲一区中文字幕| 国产精品视频看| 欧美成人一区二区三区片免费| 久久久电影免费观看完整版| 男人和女人做事情在线视频网站免费观看| 日本精品久久久| 亚洲美女区一区| 僵尸再翻生在线观看| 毛片毛片毛片毛片毛| 亚洲.欧美.日本.国产综合在线| 在线免费观看av网站| 五月花成人网| а√中文在线天堂精品| 美女高潮黄又色高清视频免费| 国产专区综合网| 亚洲欧洲成人自拍| 日韩国产在线不卡视频| 免费看av成人| 国产情侣久久久久aⅴ免费| 69国产精品视频| 国产三级日本三级在线播放| 强伦女教师2:伦理在线观看| 国产一区国产精品| 国产欧美日韩专区| 一个人看的www免费观看视频| 国产国产国产国产国产国产| 国产精品久久久久久久无码| 久久综合图片| 免费在线成人av| 久久久久久久影视| 久草福利在线观看| 日韩女同一区二区三区| 日韩国产精品毛片| 少妇人妻大乳在线视频| 好久没做在线观看| 精精国产xxxx视频在线野外| 成人一区二区电影| 免费在线播放av| 99re6在线视频| 99久久无色码| 成年人午夜剧场| 五丁香在线视频| 91在线免费观看网站| 99视频在线免费| 一区二区三区影院| 国产日韩精品久久久| 一区二区三区四区精品在线视频| 一二三四视频在线社区中文字幕2| 国产成人精彩在线视频九色| 欧美在线一二三区| 欧美成人69| 2021国产精品视频| 神马影院一区二区三区| 欧美午夜xxx| 李丽珍裸体午夜理伦片| 久久在精品线影院精品国产| 激情伊人五月天| 爽好多水快深点欧美视频| 国产精品久久亚洲7777| 亚洲欧洲久久久| 日本韩国欧美| 黄网视频午夜青春| 成人三级网址| 亚洲精品一区久久久久久| 国产欧美精品国产国产专区| 性生大片免费观看性| 国产老女人乱淫免费| 国产麻豆剧果冻传媒观看hd高清| 国产精品白丝av嫩草影院| 岛国毛片在线播放| **网站欧美大片在线观看| 色综合五月婷婷| 肉色超薄丝袜脚交一区二区| 一区二区三区www污污污网站| 免费久久99精品国产自| 欧美zzoo| 四虎精品成人影院观看地址| 成人久久18免费网站麻豆| 波多野结衣av在线免费观看| 免费看国产黄色片| ckplayer中文字幕| av漫画网站在线观看| 成人全视频在线观看在线播放高清| 黄av在线免费观看| 精品无码国产一区二区三区51安| 亚洲同性同志一二三专区| 日本三级电影在线看| 国产日产精品一区二区三区四区| 国产又粗又猛又色又| 国产精品久久亚洲不卡| 久久爱一区二区| 欧美二区乱c黑人| 黄色片子在线观看| 台湾佬中文娱乐网欧美电影| 2021天堂中文幕一二区在线观| 婷婷av一区二区三区| 四虎精品视频| 九九久久久久99精品| 日韩欧美精品| 人在线成免费视频| 999成人精品视频线3| 制服丝袜在线播放| 中文字幕一区二区三区手机版| 天天舔天天干天天操| www.久久成人| 亚洲图片小说视频| 亚洲av无码国产精品麻豆天美| 午夜精品久久久久久久99热浪潮| 欧美女人交a| 亚洲国产高清国产精品| 99er在线视频| 中文视频在线观看| 欧美图片欧美激情欧美精品| 石原莉奈一区二区三区在线观看| 国产一区二区精品在线| 国产手机在线观看| 一区二区在线观看免费视频| 九色中文视频| 国产精品免费视频xxxx| 媚黑女一区二区| bt在线麻豆视频| 男生操女生视频网站| 国精产品99永久一区一区| 19禁羞羞电影院在线观看| 亚洲五月激情网| 久草在线新免费首页资源站| 亚洲精品在线观看www| 国产伦精品一区二区三区视频| 国产亚洲精品美女久久久| 久久福利电影| 国产馆手机在线观看| 一区二区免费在线观看视频| 自由的xxxx在线视频| 625成人欧美午夜电影| 青青草精品视频在线| 一色屋精品亚洲香蕉网站| 国产亚洲精品成人| 日本精品黄色| 久久久久亚洲av无码专区| 欧美视频一区二区| 岛国av免费观看| 国产91色综合久久免费分享| 999人在线精品播放视频| 自拍偷拍第1页| 久久人人视频| 在线亚洲精品| 国色天香2019中文字幕在线观看| 国产伦精品一区二区三区视频黑人| 日韩成人精品在线| 毛片网站免费哦| 在线成人激情| 国语自产精品视频在线看| 99久久免费精品高清特色大片| 成人免费观看在线网址| 亚洲欧美电影一区二区|