標籤:mongodb keepalived 複本集 mongodb複本集 mongodb主從
項目目標:故障自動切換和自動修複成員節點,各個資料庫之間資料完全一致。
項目描述:複本集沒有固定主節點,是整個叢集選舉得出的一個主節點,當其不工作時變 更其他節點。最小的複本集也應該具備一個primary節點和兩secondary節點。兩個節點的複本集不具備真正的容錯移轉能力。所有Secondary都宕機、或則複本集中只剩下一個節點,則該節點只能為Secondary節點,也就意味著整個叢集智能進行讀操作而不能進行寫操作,當其他的恢複時,之前的primary節點仍然是primary節點
項目環境:三台伺服器RHEL6.5
keepalived-1.2.7.tar.gz
mongodb-linux-x86_64-2.4.9.tgz
注意:複本集與主從有很大差別,但安裝過程一樣。
一、下載keepalived和mongodb源碼包
http://yunpan.cn/cLnMGSt7v2X4s 訪問密碼 956a
二、安裝keepalived
[[email protected] ~]yum -y install gccopenssl-devel popt popt-devel libnl libnl-devel kernel-devel #所需依賴包
[[email protected]~]# tar -zxvf keepalived-1.2.7.tar.gz
[[email protected]~]# cd keepalived-1.2.7.tar.gz
[[email protected]]# ./configure #安裝三部曲
[[email protected]]# make
[[email protected]]# make install
三、拷貝設定檔和啟動指令碼
[[email protected]~]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
[[email protected]~]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig
[[email protected]~]# mkdir /etc/keepalived
[[email protected]~]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
[[email protected]~]# cp /usr/local/sbin/keepalived /usr/sbin/
四、添加開機啟動
[[email protected]~]#chkconfig --add keepalived #添加服務
[[email protected]~]#chkconfig keepalived on #開機啟動
五、設定檔
[[email protected]~]#cat /etc/keepalived/keepalived.conf
!Configuration File for keepalived
vrrp_instanceMG_1 {
state BACKUP #三台全為BACKUP
interfaceeth 0
virtual_router_id 55
priority 100 #其中兩台優先順序為100,最後一台為90
advert_int 1
#nopreempt #不搶佔資源
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.10 #虛擬IP
}
}
六、[[email protected] ~]# service keepalived start
正在啟動 keepalived: [確定]
七、以上配置,其中兩台完全相同,最後一台優先順序設定為90,並設定為不搶佔資源。
八、命令ip a可查看虛擬IP,成功則顯示虛擬IP。
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/76/52/wKiom1ZO8xTDFHGXAAB2ZwU816M294.png" title="QQ圖片20151120181630.png" alt="wKiom1ZO8xTDFHGXAAB2ZwU816M294.png" />
九、安裝mongodb
[[email protected] ~]# tar -zxvfmongodb-linux-x86_64-2.4.9.tgz -C /usr/local/
[[email protected] local]# mv mongodb-linux-x86_64-2.4.9/ mongodb
[[email protected] local]# cd mongodb/
[[email protected] mongodb]# mkdir db
[[email protected] mongodb]# mkdir logs
[[email protected] mongodb]# cd bin
[[email protected] bin]# cat mongodb.conf
dbpath=/usr/local/mongodb/db #資料存放路徑
logpath=/usr/local/mongodb/logs/mongodb.log
port=27017
fork=true #以守護進程的方式運行MongoDB
nohttpinterface=true #禁止HTTP狀態介面預設情況下Mongodb 在連接埠28017上運行http介面
maxConns=5000 #最大同時串連數
replSet=mongodb #同一複本集,必須
#shardsvr=true #啟動分區
十、啟動mongodb
[[email protected]]# numactl --interleave=all /usr/local/mongodb/bin/mongod --config/usr/local/mongodb/bin/mongodb.conf
十一、[[email protected] bin]# vim /etc/bashrc
PATH=/usr/local/mongodb/bin:$PATH #添加命令路徑
[[email protected] bin]# source/etc/bashrc
[[email protected] ~]# vim/etc/rc.local
numactl--interleave=all /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf #追加命令,開機啟動
十二、進入資料庫,配置複本集伺服器
[[email protected] ~]#mongo #進入mongodb
MongoDB shell version: 2.4.9
connecting to: test
> config = {_id:"mongodb",members:[
...{_id:0,host:"192.168.0.100:27017",priority:10},
...{_id:1,host:"192.168.0.200:27017",priority:10},
...{_id:2,host:"192.168.0.5:27017",priority:5}]
...}
>rs.initiate(config); #初始化複本集配置
>rs.reconfig(cfg); #重新載入設定檔
十三、如果要增加伺服器可執行命令
>rs.add({"_id":3,"host":"192.168.0.300:27017"})
十四、有虛擬IP,可執行命令
[[email protected] ~]#mongo 192.168.0.10 #進入資料庫,IP為虛擬
十五、以上配置如果執行,有報錯資訊,請自己百度。本人已成功配置。
本文出自 “系統營運之道” 部落格,謝絕轉載!
mongodb複本集