和前一個版本相比,改動點有:
配置檔案采用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,如需轉載請自行聯系原作者