萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> corosync pacemaker mysql replication 實現高可用

corosync pacemaker mysql replication 實現高可用

寫這篇文章的時候,其實心裡很不爽,國外VPN出了點問題,所以用度娘了,度娘搜出來的東西,80%是一樣,有的名字不一樣,但是內容還是一樣的,corosync pacemaker mysql drbd 的高可用,我在想,如果不用drbd是不是就不能用corosync pacemaker實現高可用了?


對度娘的搜索算法,以及競價排名,我只想說我去年買了個表。

一,mysql replication主從配置

請參考:mysql replication 主從(master-slave)同步 http://www.111cn.net/database/mysql/83904.htm

二,corosync pacemaker安裝配置

請參考:corosync pacemaker nginx 高可用 安裝配置
上面二篇博客的/etc/hosts是定義的不一樣的,以mysql replication為准,也就是masters,slave2。
在這裡要注意,改過hosts的名稱後,masters節點,要重新生成auth文件的。

[root@masters corosync]# corosync-keygen  

[root@masters corosync]# scp /etc/corosync/authkey root@slave2:/etc/corosync/ //如果有很多節點都要copy


各節點重啟corosync。

三,masters節點,配置mysql crmsh

1,配置mysql crmsh

[root@masters tank]# crm  

crm(live)# configure  

crm(live)configure#  

crm(live)configure# property stonith-enabled=false  

crm(live)configure# property no-quorum-policy=ignore  

crm(live)configure# primitive mysqlip ocf:heartbeat:IPaddr params ip=192.168.10.231 op monitor interval=30s timeout=20s on-fail=restart  

crm(live)configure# primitive mysqlserver lsb:mysqld  

crm(live)configure# colocation mysql_col inf: mysqlserver mysqlip  

crm(live)configure# order mysql_after_ip mandatory: mysqlip mysqlserver  

crm(live)configure# verify  

crm(live)configure# commit  

crm(live)configure# show
在這裡發現一個問題,在網上看了一些資料,關於monitor後時間配置,有幾種版本
monitor interval=30 timeout=20
monitor interval="30" timeout="20"
monitor interval="30s" timeout="20s"
我沒有驗證這些寫法的正確性,但是monitor interval=30s timeout=20s,這種寫法肯定是正確的,我用的系統是centos 6.5 64位,並且在幫助文檔中也是這種寫法。
Pacemaker corosync 時間寫法
Pacemaker corosync 時間寫法
這是配置完成後的,通過show查看
配置成功後,通過configure mysql show
配置成功後,通過configure mysql show

2,檢測mysql各節點狀態

[root@masters tank]# crm status  

Last updated: Thu Apr 23 02:36:54 2015  

Last change: Thu Apr 23 02:36:06 2015  

Stack: classic openais (with plugin)  

Current DC: slave2 - partition with quorum  

Version: 1.1.11-97629de  

5 Nodes configured, 2 expected votes  

3 Resources configured  

  

Online: [ masters slave2 ]  //二節點都要在線  

OFFLINE: [ localhost.localdomain node1 node2 ]  

  

 webip (ocf::heartbeat:IPaddr): Started masters  

 nginx_res (lsb:nginx): Started masters  

 mysqlip (ocf::heartbeat:IPaddr): Started slave2  

 mysqlserver (lsb:mysqld): Started slave2
如果online,節點不全的話,offline的機器上面,執行
[root@slave2 ~]# crm node online

四,測試

[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果實際連接masters的話  

[root@masters ~]# crm node standby //masters機器,將masters掛起  

[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231 //如果成功連接到slave2的話,說明測試成功

 
有三台mysql,一主二從,如果主服務器down機了,二台從服務器,能不能自動轉成一主一從,並保持數據的完成性呢,MHA可以幫我們解決這問題

 

copyright © 萬盛學電腦網 all rights reserved