標籤:mysql的雙主複製
示範mysql的雙主複製的模型:
物理機為win7,虛擬機器是2台centos7
節點1:192.168.255.2
節點2:192.168.255.3
yum安裝mariadb-server5.5
配置節點1:
]# vim /etc/my.cnf
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/82/8B/wKiom1dYT6bwzlf4AABqi3ptfsM606.png" title="1.png" alt="wKiom1dYT6bwzlf4AABqi3ptfsM606.png" />
配置節點2
]# vim /etc/my.cnf
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/82/89/wKioL1dYULmj_A4lAACHhhBi1yA503.png" title="2.png" alt="wKioL1dYULmj_A4lAACHhhBi1yA503.png" />
分別啟動mysql服務:
]# systemctl start mariadb.service
分別在兩節點上:設定複製許可權的帳號:
> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO ‘repluser‘@‘192.168.255.%‘ IDENTIFIED BY ‘replpass‘;
> FLUSH PRIVILEGES;
注意:在實際工作中,只能授權單個IP,不能是萬用字元的形式授權;如果有多個ip,就每個ip單獨執行一遍授權語句;
然後,設定兩個節點都指向對方為主節點;
提前記錄好對方的二進位記錄檔事務所處的位置;然後就從這個位置開始複製:
節點1:查看並記錄二進位記錄檔事務所處的位置
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/82/89/wKioL1dYUePBK28sAAAWJnmsvdM967.png" title="3.png" width="700" height="138" border="0" hspace="0" vspace="0" style="width:700px;height:138px;" alt="wKioL1dYUePBK28sAAAWJnmsvdM967.png" />
記錄位置為499,將在節點2設定時使用;
節點2:查看並記錄二進位記錄檔事務所處的位置
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/82/89/wKioL1dYUrKCaIzRAAAVaGiFhss174.png" title="4.png" width="700" height="139" border="0" hspace="0" vspace="0" style="width:700px;height:139px;" alt="wKioL1dYUrKCaIzRAAAVaGiFhss174.png" />
記錄位置為509,將在節點1設定時使用;
設定節點1:
> CHANGE MASTER TO MASTER_HOST=‘192.168.255.3‘,MASTER_USER=‘repluser‘,MASTER_PASSWORD=‘replpass‘,MASTER_LOG_FILE=‘master-bin.000003‘,MASTER_LOG_POS=509;
設定節點2:
> CHANGE MASTER TO MASTER_HOST=‘192.168.255.2‘,MASTER_USER=‘repluser‘,MASTER_PASSWORD=‘replpass‘,MASTER_LOG_FILE=‘master-bin.000003‘,MASTER_LOG_POS=499;
分別在兩節點上:設定
> START SLAVE;
此時,在兩節點均可查看:
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/82/8B/wKiom1dYU9vTDLX5AACti_E5HSU330.png" style="width:700px;height:843px;" title="5.png" width="700" height="843" border="0" hspace="0" vspace="0" alt="wKiom1dYU9vTDLX5AACti_E5HSU330.png" />
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/82/89/wKioL1dYVOWgch3oAACqfz3JpNY161.png" style="width:700px;height:814px;" title="6.png" width="700" height="814" border="0" hspace="0" vspace="0" alt="wKioL1dYVOWgch3oAACqfz3JpNY161.png" />
顯示內容和主從複製基本相同,只不過都是互為雙主的模型;
此時,雙主模型配置完成,雙方都可以通過對方複製了;
驗證雙主:
例如在節點1,建立一個新庫:
> CREATE DATABASE mydb;
並查看節點1的狀態:
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/82/8B/wKiom1dYVhHjEA5gAACv04w4Mw8149.png" title="7.png" alt="wKiom1dYVhHjEA5gAACv04w4Mw8149.png" />
在節點2:
查看狀態:
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/82/8B/wKiom1dYVq3AN-_tAACpO2DgCsE275.png" title="8.png" width="723" height="831" border="0" hspace="0" vspace="0" style="width:723px;height:831px;" alt="wKiom1dYVq3AN-_tAACpO2DgCsE275.png" />
查看同步到的新庫:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/82/89/wKioL1dYWAHTE23fAAArFLBL5DQ790.png" title="9.png" alt="wKioL1dYWAHTE23fAAArFLBL5DQ790.png" />
此時,已經驗證了節點1寫操作後,節點2同步節點1後完成資料備份;
再驗證節點2發生寫操作後,節點1同步節點2後完成數備份;
在節點2:
在新庫中建立表:
> use mydb
> CREATE TABLE tb1 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,name CHAR(30));
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/82/8B/wKiom1dYWKrAhGiGAAAcobYn8TU126.png" title="10.png" width="720" height="162" border="0" hspace="0" vspace="0" style="width:720px;height:162px;" alt="wKiom1dYWKrAhGiGAAAcobYn8TU126.png" />
查看節點2狀態:
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/82/89/wKioL1dYWjzTQYMnAAAWN7ziynI710.png" title="11.png" width="723" height="151" border="0" hspace="0" vspace="0" style="width:723px;height:151px;" alt="wKioL1dYWjzTQYMnAAAWN7ziynI710.png" />
到節點1上查看同步後的結果:
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/82/89/wKioL1dYWrjRALKgAACbrWPghRg939.png" title="12.png" alt="wKioL1dYWrjRALKgAACbrWPghRg939.png" />
查看同步到的表:
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/82/8B/wKiom1dYWk7Cywf5AABMssuS_R4421.png" title="13.png" alt="wKiom1dYWk7Cywf5AABMssuS_R4421.png" />
繼續驗證自動成長位移量:
繼續在節點1:給欄位插入新值
> INSERT INTO tb1 (name) VALUES (‘Kobe Byrant‘),(‘Michael Jordan‘),(‘Yao Ming‘);
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/82/89/wKioL1dYXJmy8dStAAActmBY8gA472.png" title="14.png" alt="wKioL1dYXJmy8dStAAActmBY8gA472.png" />
在節點2:
也給欄位插入新值,驗證自動成長位移量不會出現重複的id
> INSERT INTO tb1 (name) VALUES (‘Zhu Uuanzhang‘),(‘Zhu Di‘),(‘Zhu Yue‘);
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/82/8B/wKiom1dYXA7BZlNCAAAZIJGFfCY509.png" title="15.png" alt="wKiom1dYXA7BZlNCAAAZIJGFfCY509.png" />
可驗證,自動成長位移量實現當兩邊分別插入新值後,id不會重複;
以上就是mysql主主複製模型的配置實現完成。
mysql的主主複製模型