標籤:mongodb replication 複本集 叢集 主從
環境配置
架構:一主兩從(三台虛擬機器)
系統版本:CentOS Linux release 7.4.1708 (Core)
MongoDB版本:3.0.15
MongoDB安裝
以下操作在三台虛擬機器都進行
下載yum源配置
wget https://repo.mongodb.org/yum/redhat/mongodb-org-3.0.repo mv mongodb-org-3.0.repo /etc/yum.repos.d/
安裝mongodb
yum -y install mongodb-org
修改mongodb設定檔
# 修改監聽地址為0.0.0.0net: port: 27017 bindIp: 0.0.0.0# 修改複本集配置,此項為之後配置複本集所需要的配置replication: oplogSizeMB: 20480 replSetName: gogen
修改核心配置
# 最好加入開機自啟動設定檔echo never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag
修改檔案描述符/etc/security/limits.conf
# 在設定檔最後加入以後內容mongod soft nofile 64000mongod hard nofile 64000mongod soft nproc 32000mongod hard nproc 32000
啟動服務
chkconfig mongod onservice mongod start
複本集部署
在任何一台伺服器上面執行下面命令登入至monogdb
mongo
切換至admin庫
> use admin
定義一個config變數
> config={_id:"gogen",members:[{_id:0,host:"192.168.6.91:27017"},{_id:1,host:"192.168.6.92:27017"},{_id:2,host:"192.168.6.93:27017"}]}
初始化配置,返回 { "ok" : 1 } 則建立成功
> rs.initiate(config){ "ok" : 1 }gogen:OTHER> gogen:PRIMARY>
複本集權重配置
在任何一台伺服器上面登入至monogdb再執行下面的命令,首先定義一個變數
gogen:PRIMARY> cfg=rs.config()
更改第一個主機的權重為100
gogen:PRIMARY> cfg.members[0].priority=100
更改第二個主機的權重為90
gogen:PRIMARY> cfg.members[1].priority=90
更改第三個主機的權重為1
gogen:PRIMARY> cfg.members[2].priority=1
重新整理配置
gogen:PRIMARY> rs.reconfig(cfg)
複本集基本命令使用
查看複本集狀態
gogen:PRIMARY> rs.status()
查看複本集配置
gogen:PRIMARY> rs.config()
測試
在主上面寫入一些資料,查看從是否可以從主同步
測試主宕機(直接關機,或者停止服務),是否可以在另外兩台從裡同重新選舉出新主
在新主上面再寫入資料,查看另外一個從是否可以同步
恢複宕機的舊主伺服器,查看新寫入的資料是否可以同步到舊主,另外查看是否會將主奪取回來
MongoDB 3.0複本集搭建