1、服務(wù)器規(guī)劃
?? ?Master:192.168.0.152
?? ?Slave: 192.168.0.153 ?? ?192.168.0.154
?? ?監(jiān)控服務(wù)器: 192.168.0.154
?? ?注意:真實生產(chǎn)環(huán)境最好有一臺單獨的服務(wù)器監(jiān)控數(shù)據(jù)庫Replication,這里我就直接用一臺Salve服務(wù)器當做監(jiān)控服務(wù)器了。
2、安裝安裝 Utilities和MySQL Connectors
下載 MySQL Utilities和MySQL Connectors并安裝
在192.168.0.154(監(jiān)控服務(wù)器)服務(wù)器上執(zhí)行以下命令來安裝下載的MySQL Utilities和MySQL Connectors
yum?install?mysql-connector-python-2.1.4-1.el6.x86_64.rpm?mysql-utilities-1.6.4-1.el6.noarch.rpm
3、配置好Replcation環(huán)境,一臺Mster和兩臺Slave環(huán)境
??? Master:192.168.0.152
?? ?Slave: 192.168.0.153 ?? ?192.168.0.154
?? ?監(jiān)控服務(wù)器: 192.168.0.154
配置Replication請參見博文《MySQL之——MS主從復制(讀寫分離)實現(xiàn)》? 、《MySQL之——MSS主從復制(讀寫分離)實現(xiàn)》? 、《MySQL之——BinLog Replication升級為GTIDs Replication四步驟》。
4、為監(jiān)控機授權(quán)
在192.168.0.152、192.168.0.153和192.168.0.154服務(wù)器上分別執(zhí)行:
mysql>grant?create,insert?,drop,?select,?super,?replication?slave,?reload?on?*.*?to?'replm'@'192.168.0.154'?identified?by?password?'replm'?with?grant?option;
在192.168.0.152、192.168.0.153和192.168.0.154分別執(zhí)行
mysql>show?grants?for?replm@192.168.0.154;
可驗證是否授權(quán)成功。
注意:如果是單獨的一臺服務(wù)器監(jiān)控Replication, 只在Replication涉及到的Master和Slave服務(wù)器上執(zhí)行授權(quán)操作,授權(quán)目標IP為監(jiān)控服務(wù)器IP
5、修改Master和Slave服務(wù)器的安裝,并啟用配置
以下是配置Replication監(jiān)控和故障切換時my.cnf文件中的核心配置
[mysqld] log-bin=/data/mysql3306log/mysql-bin binlog-format=mixed server-id?=?001 sync_binlog=1 gtid-mode=on enforce-gtid-consistency log-slave-updates report-host=192.168.0.154 master-info-repository=TABLE relay-log-info-repository=TABLE
修改配置后,重啟mysql服務(wù)器,然后mysql服務(wù)器會將存儲在二進制日志中的兩個文件master.info和relay-log.info保存到數(shù)據(jù)庫中,此時執(zhí)行use mysql;show tables; 會發(fā)現(xiàn)mysql數(shù)據(jù)庫中新創(chuàng)建了slave_master_info和slave_relay_log_info兩張表。
6、啟動監(jiān)控端
在192.168.0.154(監(jiān)控服務(wù)器)上執(zhí)行
#mysqlfailover?--master=replm:replm@192.168.0.152?--discover-slaves-login=replm:replm
至此,我們配置好了Replication監(jiān)控及自動故障切換功能了。
注意:當Master服務(wù)器掛掉的時候,mysqlfailover會自動在slave服務(wù)器中選擇一個作為Master,其他slave均對應(yīng)到新的Master服務(wù)器。
注意:當Master掛掉后,mysqlfailover自動在其他slave中選擇一個服務(wù)器當做Master,當我們手動重啟原來的Master服務(wù)器時,mysqlfailover不能自動發(fā)現(xiàn)原來掛掉的mysql服務(wù)器又重啟了,這個時候就要我們自己手動將原來掛掉的mysql服務(wù)器重啟并作為一個Slave服務(wù)器加入到Replication中。