閱讀214 返回首頁    go 阿裏雲 go 技術社區[雲棲]


MongoDB 集群,主從複製集群模式,replSet集群模式

一、MongoDB -Master-Slave mode:

1、master 節點配置(192.168.99.16)

master節點創建/data/master 數據目錄,給mongo的data文件夾添加寫權限

sudo mkdir -pv /data/masterdb && sudo chmod 777 /data/masterd

運行master mongd

sudo nohup mongod --master --dbpath /data/masterdb &

2、slave 節點配置(192.168.99.17)

創建data目錄,並修改data下目錄寫權限

sudo mkdir -pv /data/slavedb && sudo chmod 777 -R /data

運行
sudo nohup mongod --slave --source 192.168.99.16:27017 --dbpath /data/slavedb &

mongo

-> rs.slaveOk() 允許從節點可讀

二、Replica Set mode

1.192.168.99.16:27017 primary
2.192.168.99.17:27018 secondary
3.192.168.99.18:27019 arbiter

master節點
sudo nohup mongod --dbpath=/data/masterdb --port 27017 --replSet mySet &
slave節點
sudo nohup mongod --dbpath=/data/slavedb --port 27018 --replSet mySet &
arbiter節點
sudo nohup mongod --dbpath=/data/arb --port 27019 --replSet mySet &

arbiter 節點配置 (192.168.99.18)

創建目錄和配置目錄權限

sudo mkdir -pv /data/arb && sudo chmod -R 777 /data

設置日誌為false
sudo vim /etc/mongod.conf 如下:

storage:
    journal:
        enabled: false
    mmapv1:
        smallFiles: true

啟動arbiter
sudo nohup mongod --dbpath /data/arb --replSet rs &

master,slave,arbiter創建如下目錄,並更改目錄權限

# sudo mkdir -pv /data/{masterdb,config,log} && sudo chmod 777 /data -R 
# sudo mkdir -pv /data/{slavedb,config,log} && sudo chmod 777 /data -R 
# sudo mkdir -pv /data/{arb,config,log} && sudo chmod 777 /data -R

在每個節點創建mongod.config,三台節點port 和dbpath不同

# sudo vim /data/config/mongod.conf

dbpath=/data/masterdb/
logpath=/data/log/mongod.log
pidfilepath=/data/config/mongod.pid
port=27017
logappend=true
fork=true
journal=true
oplogSize=2048
smallfiles=true
replSet=dbset

dbpath=/data/slavedb/
logpath=/data/log/mongod.log
pidfilepath=/data/config/mongod.pid
port=27018
logappend=true
fork=true
journal=true
oplogSize=2048
smallfiles=true
replSet=dbset

dbpath=/data/arb/
logpath=/data/log/mongod.log
pidfilepath=/data/config/mongod.pid
port=27019
logappend=true
fork=true
journal=false
oplogSize=2048
smallfiles=true
replSet=dbset

各節點指定配置文件運行mongod

mongod -f /data/config/mongod.conf

連接master

sudo mongo mongo-master:27017/admin

配置repl set,在mongo shell中執行

config={_id:'dbset',members:[{_id:1,host:'mongo-master:27017'},{_id:2,host:'mongo-slave:27018'},{_id:3,host:'mongo-arbiter:27019',arbiterOnly:true}]}

repl set初始化

rs.initiate(config)

查看集群狀態

rs.status()

添加arbiter
rs.addArb(‘mongo-arbiter:27019’)

添加節點rs.add('ip:port')
移除 rs.remove('ip:port'),移除後對應的服務好像會被停掉
*前提配置文件中replSet名稱要一致

非正常關閉無法啟動解決辦法
rm -rf /data/*db/mongod.lock

最後更新:2017-07-13 09:32:34

  上一篇:go  如何送貨最省錢?菜鳥自研核心引擎架構首次曝光!
  下一篇:go  在CentOS6.5無外網環境下的MariaDB-Galera-Cluster 5.5集群的安裝和配置