天天看點

mongodb 3.4 叢集搭建更新版 五台叢集

和前一個版本相比,改動點有:

配置檔案采用yaml方式來配置

生産中取消了仲裁者的角色,因為仲裁者也不會存儲資料,隻是起到選舉的作用,線上為了保證資料安全,每份資料都會配置兩個副本集,也就是每份資料存儲了三份。

優化配置,采用五台叢集

使用非root賬戶搭建mongodb叢集。

系統系統 centos6.9

五台伺服器:192.168.0.31/32/33/34/35

安裝包: mongodb-linux-x86_64-3.4.6.tgz

伺服器規劃

伺服器31

伺服器32

伺服器33

伺服器34

伺服器35

mongos server

config server

shard1 server

shard2 server

shard3 server

shard4 server

shard5 server

端口配置設定:

權限配置設定:

登入root賬戶,将安裝目錄和資料目錄權限配置設定給日常操作(youknow)賬戶

下載下傳 mongodb 3.4.6 安裝包

根據伺服器的規範,分别在對應的伺服器上建立conf、mongos、config、shard1、shard2、shard3、shard4、shard5等目錄,因為mongos不存儲資料,隻需要建立日志檔案目錄即可。

為了後續友善操作,配置mongodb的環境變量,需要切到root使用者下面

檢視mongodb版本資訊<code>mongod -v</code> 輸出版本資訊表明配置環境變量成功

在伺服器33、34、35上配置以下内容:

添加配置檔案:

添加配置檔案

啟動三台伺服器的config server

登入任意一台配置伺服器,初始化配置副本集

其中,"_id" : "configs"應與配置檔案中配置的 replicaction.replSetName 一緻,"members" 中的 "host" 為三個節點的ip和port

這樣配置伺服器就配置好了

在伺服器 31、32、33上面做以下配置

配置檔案

啟動三台伺服器的shard1 server

登陸任意一台伺服器,初始化副本集

在伺服器32、33、34上面做以下配置

啟動三台伺服器的shard2 server

在伺服器33、34、35上面做以下配置

啟動三台伺服器的shard3 server

在伺服器34、35、31上面做以下配置

啟動三台伺服器的shard4 server

在伺服器35、31、32上面做以下配置

啟動三台伺服器的shard5 server

至此,五個分片和副本集搭建完畢

以下配置在伺服器31、32上執行

注意:先啟動配置伺服器和分片伺服器,後啟動路由執行個體

啟動二台伺服器的mongos server

目前搭建了mongodb配置伺服器、路由伺服器,各個分片伺服器,不過應用程式連接配接到mongos路由伺服器并不能使用分片機制,還需要在程式裡設定分片配置,讓分片生效。

登陸任意一台mongos

這樣mongodb的五台叢集搭建就已經完成了,後期如何優化和營運請檢視下一篇文章。

執行 rs.initiate(config); 報錯:

最後發現是自己的一個端口号寫錯了。

啟動mongos的時候報錯:

這個問題卡了我們半天,找了很多的資料,不是說清理lock檔案,就是說清理log檔案總無解,最後看到這個網站的提示

<a href="http://www.kriblog.com/bigdata/NoSQL/MongoDb/error-child-process-failed-exited-with-error-number-1.html">ERROR: child process failed, exited with error number 1</a>

去掉了配置檔案中 --fork,才将真正的錯誤日志列印了出來,是我們的配置檔案中的路徑寫錯了,本來是log寫成了logs

原來:<code>path: /data/logs/mongos.log</code>

改為:<code>path: /data/log/mongos.log</code>

成功

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。 

本文如對您有幫助,還請多幫 【推薦】 下此文。 

如果喜歡我的文章,請關注我的公衆号

本文轉自純潔的微笑部落格部落格園部落格,原文連結:http://www.cnblogs.com/ityouknow/p/7566682.html,如需轉載請自行聯系原作者