本文先配置了一個雙master環境,互為主從,然后通過Keepalive配置了一個虛擬IP,客戶端通過虛擬IP連接master1,當master1宕機,自動切換到master2。一次只能連接其中一個master進行讀寫,所以是active-passive模式。
一 Mysql主主復制搭建
1.1 實驗環境
兩台機器事先都已經裝好了mysql單實例。
二者的端口號需要保持一致,否則在最后用vip連接的時候,不能使用相同端口號連接。
1.2 實驗步驟
1.2.1 修改配置文件
修改master1:
在[mysqld]下面添加:
server-id = 1
relay-log=/data/server/mysql_3307/binlog/ZabbixServer-relay-bin
relay-log-index=/data/server/mysql_3307/binlog/ZabbixServer-relay-bin.index
auto-increment-offset = 1
auto-increment-increment = 2
log-slave-updates=true
修改master2:
在[mysqld]下面添加:
server-id = 3
relay-log =/data/server/mysql/binlog/single-relay-bin
relay-log-index=/data/server/mysql/binlog/single-relay-bin.index
auto-increment-offset = 2
auto-increment-increment = 2
log-slave-updates=true
添加auto-increment-offset那兩項,是為了避免在MySQL INSERT時主鍵沖突。
修改完后記得重啟mysql
1.2.2 建復制用戶
分別在兩台mysql上執行
GRANT REPLICATION SLAVE ON *.* TO 'RepUser'@'%'identified by 'beijing';
1.2.3 指向master
兩台服務器均為新建立,且無其它寫入操作,各服務器只需記錄當前自己二進制日志文件及事件位置,以之作為另外的服務器復制起始位置即可。否則,需要先備份主庫,在備庫進行恢復,從而保持數據一致,然后再指向master。
Master1:
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+