MongoDB分片集群搭建

1嘉抒,服務(wù)器環(huán)境準(zhǔn)備

進(jìn)程 IP地址 端口
config server 配置服務(wù)器1(primary) 139.196.240.226 28001
config server 配置服務(wù)器2(secondary) 8.133.184.34 28001
config server 配置服務(wù)器3(secondary) 139.224.244.2 28001
shard server1 主節(jié)點(diǎn) 139.196.240.226 28011
shard server1 仲裁 8.133.184.34 28011
shard server1 副節(jié)點(diǎn) 139.224.244.2 28011
shard server2 主節(jié)點(diǎn) 139.196.240.226 28012
shard server2 仲裁 8.133.184.34 28012
shard server2 副節(jié)點(diǎn) 139.224.244.2 28012
shard server3 主節(jié)點(diǎn) 139.196.240.226 28013
shard server3 仲裁 8.133.184.34 28013
shard server3 副節(jié)點(diǎn) 139.224.244.2 28013
路由服務(wù)器 139.196.240.226 28000

2碱茁,配置config server服務(wù)器

  • 集群之間通信的安全認(rèn)證證書生成
    • 在每臺(tái)機(jī)器的 /usr/local/mongodb 目錄下創(chuàng)建證書存放目錄:cert,如下
cd /var/lib/mongo
mkdir cert
  • 生成集群通信證書key文件mongokey寞蚌,并且將mongokey文件復(fù)制到每臺(tái)機(jī)器的 /usr/local/mongodb/cert 目錄下

隨便進(jìn)入一臺(tái)機(jī)器谷遂,通過openssl命令生成通信key慧瘤,key文件名字為:mongokey,如下:

cd /
openssl rand -base64 745 > /var/lib/mongo/cert/mongokey
cd /var/lib/mongo/cert/
ls
# 必須將mongokey文件賦權(quán)限
chmod -R 600 mongokey
  • 維護(hù)好配置文件config.conf本橙,如下:
systemLog:
   destination: file
   path: /usr/local/monogodb/config/log/logs
   logAppend: true

storage:
   dbPath: /usr/local/mongodb/config/data
   journal:
      enabled: true

processManagement:
   fork: true
   pidFilePath: /usr/local/mongodb/config/log/mongod.pid
   timeZoneInfo: /usr/share/zoneinfo

net:
   bindIp: 0.0.0.0
   port: 28001

security:
   #鏈接認(rèn)證扳躬,也就是賬號(hào)密碼
   authorization: enabled
   #集群內(nèi)部通信安全證書文件,每臺(tái)的證書必須一致
   keyFile: /usr/local/mongodb/cert/mongokey   

sharding:
   clusterRole: configsvr

replication:
   replSetName: configs
  • 啟動(dòng)mongo服務(wù)
cd /usr/local/mongodb/config/mongdb-4.4.2/bin
./mongod -f /usr/local/mongodb/config/conf/config.conf --fork
  • 連接登錄其中一個(gè)節(jié)點(diǎn)的mongo
cd /usr/local/mongodb/config/mongdb-4.4.2/bin
./mongo --port 28001
  • 初始化副本集
> use admin

> config={_id:'configs', 
 configsvr:true,
    members : [
  {_id : 0, host : '139.224.244.2:28001' },
  {_id : 1, host : '8.133.184.34:28001'},
  {_id : 2, host : '139.196.240.226:28001' }
  ]}
  
> rs.initiate(config)  


image.png

3,配置分片副本集

  • 集群之間通信的安全認(rèn)證證書生成

操作如上贷币。

  • 維護(hù)好配置文件config.conf击胜,如下:
systemLog:
   destination: file
   path: /usr/local/monogodb/shard1/log/logs
   logAppend: true

storage:
   dbPath: /usr/local/mongodb/shard1/data
   journal:
      enabled: true

processManagement:
   fork: true
   pidFilePath: /usr/local/mongodb/shard1/log/mongod.pid
   timeZoneInfo: /usr/share/zoneinfo

net:
   bindIp: 0.0.0.0
   port: 28011

security:
   #鏈接認(rèn)證,也就是賬號(hào)密碼
   authorization: enabled
   #集群內(nèi)部通信安全證書文件役纹,每臺(tái)的證書必須一致
   keyFile: /usr/local/mongodb/cert/mongokey   

sharding:
   clusterRole: shardsvr

replication:
   replSetName: shard1
  • 啟動(dòng)mongo服務(wù)
cd /usr/local/mongodb/shard1/mongdb-4.4.2/bin
./mongod -f /usr/local/mongodb/shard1/conf/config.conf --fork
  • 連接登錄其中一個(gè)節(jié)點(diǎn)的mongo
cd /usr/local/mongodb/shard1/mongdb-4.4.2/bin
./mongo --port 28011
  • 初始化副本集
> use admin

> config={_id:'shard1',     
    members : [
  {_id : 0, host : '139.224.244.2:28011' },
  {_id : 1, host : '8.133.184.34:28011'},
  {_id : 2, host : '139.196.240.226:28011' }
  ]}
  
> rs.initiate(config)  


  • 同樣的方法構(gòu)建副本集shard2和shard3

4偶摔,配置路由服務(wù)器mongos

  • 在三臺(tái)服務(wù)器上安裝mongoDB
cd /usr/local
mkdir mongodb
cd mongodb
mkdir mongos

安裝mongoDB到config目錄下,安裝步驟參考MongoDB安裝手冊(cè)

  • 集群之間通信的安全認(rèn)證證書生成

操作如上促脉。

  • 維護(hù)好配置文件config.conf辰斋,如下:
systemLog:
   destination: file
   path: /usr/local/mongodb/mongos/log/logs
   logAppend: true

processManagement:
   fork: true
   pidFilePath: /usr/local/mongodb/mongos/log/mongod.pid
   timeZoneInfo: /usr/share/zoneinfo

net:
   bindIp: 0.0.0.0
   port: 28000
   
security:
   #集群內(nèi)部通信安全證書文件,每臺(tái)的證書必須一致
   keyFile: /usr/local/mongodb/cert/mongokey     

sharding:
   configDB: configs/139.224.244.2:28001,8.133.184.34:28001,139.19s6.240.22:28001

  • 在其他節(jié)點(diǎn)創(chuàng)建賬戶認(rèn)證
> use admin

> db.createUser(
{
user:"username",
pwd:"password",
roles:[{role:"root",db:"admin"}]
}
)
  • 啟動(dòng)mongo服務(wù)
cd /usr/local/mongodb/mongos/mongdb-4.4.2/bin
./mongos -f /usr/local/mongodb/mongos/conf/config.conf --fork
  • 啟用分片

登錄mongos路由服務(wù)器

mongo --port 28000
#使用admin數(shù)據(jù)庫
use admin
#串聯(lián)路由服務(wù)器與分配副本集
sh.addShard("shard1/139.224.244.2:28011,8.133.184.34:28011,139.196.240.226:28011")
sh.addShard("shard2/139.224.244.2:28012,8.133.184.34:28012,139.196.240.226:28012")
sh.addShard("shard3/139.224.244.2:28013,8.133.184.34:28013,139.196.240.226:28013")
image.png

5瘸味,測(cè)試分片

  • 激活數(shù)據(jù)庫分片功能
語法:( { enablesharding : "數(shù)據(jù)庫名稱" } )

mongos> db.runCommand( { enablesharding : "test" } )
  • 指定分片建對(duì)集合分片宫仗,范圍片鍵--創(chuàng)建索引
mongos> use admin
# 根據(jù)指定索引分片
mongos> db.runCommand( { shardcollection : "test.vast",key : {id: 1} } )
or
# 根據(jù)hash分片
mongos> db.runCommand( { shardcollection : "test.vast",key : {id: "hashed“} } )
  • 集合分片驗(yàn)證
mongos> use test
mongos> for(i=0;i<20000;i++){ db.vast.insert({"id":i,"name":"clsn","age":70,"date":new Date()}); }
mongos> db.vast.stats()

排除掉不重要的信息的測(cè)試結(jié)果


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市旁仿,隨后出現(xiàn)的幾起案子藕夫,更是在濱河造成了極大的恐慌,老刑警劉巖枯冈,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件毅贮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡尘奏,警方通過查閱死者的電腦和手機(jī)滩褥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炫加,“玉大人瑰煎,你說我怎么就攤上這事∽粮校” “怎么了丢间?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長驹针。 經(jīng)常有香客問我烘挫,道長,這世上最難降的妖魔是什么柬甥? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任饮六,我火速辦了婚禮,結(jié)果婚禮上苛蒲,老公的妹妹穿的比我還像新娘卤橄。我一直安慰自己,他們只是感情好臂外,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布窟扑。 她就那樣靜靜地躺著喇颁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嚎货。 梳的紋絲不亂的頭發(fā)上橘霎,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音殖属,去河邊找鬼姐叁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛洗显,可吹牛的內(nèi)容都是我干的外潜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼挠唆,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼处窥!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起损搬,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤碧库,失蹤者是張志新(化名)和其女友劉穎柜与,沒想到半個(gè)月后巧勤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弄匕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年颅悉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迁匠。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡剩瓶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出城丧,到底是詐尸還是另有隱情延曙,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布亡哄,位于F島的核電站枝缔,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蚊惯。R本人自食惡果不足惜愿卸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望截型。 院中可真熱鬧趴荸,春花似錦、人聲如沸宦焦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至酝豪,卻和暖如春园骆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背寓调。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國打工锌唾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人夺英。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓晌涕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親痛悯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子余黎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 最近公司的某個(gè)項(xiàng)目活躍越來越高,數(shù)據(jù)越來越多载萌。目前考慮做mongodb的分片集群惧财,雖然我只是個(gè)無關(guān)緊要的小菜鳥,這...
    何廣達(dá)閱讀 391評(píng)論 0 0
  • mongo版本:mongodb-linux-x86_64-4.0.16.tgz三臺(tái)虛擬機(jī)192.168.150.1...
    harlanyee閱讀 332評(píng)論 0 0
  • MongoDb分片集群搭建 基于mongodb3.6 分片集群的權(quán)限控制 Brief: 內(nèi)部通過keyfile控制...
    tufatao閱讀 433評(píng)論 0 3
  • 本文主要介紹了mongoDB分片集群概念扭仁,以及分片集群搭建過程垮衷,方便下次參考。 概念 分片(sharding)是一...
    科威舟VS求利閱讀 1,343評(píng)論 0 0
  • 在搭建分片之前,先了解下分片中各個(gè)角色的作用: ① 配置服務(wù)器熊泵。是一個(gè)獨(dú)立的mongod進(jìn)程仰迁,保存集群和分片的元數(shù)...
    Uzero閱讀 1,556評(píng)論 3 2