對度娘的搜索算法,以及競價排名,我只想說我去年買了個表。
一,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可以幫我們解決這問題