mysql主主及並行複製的搭建
兩臺機器互為主從。
機器1:192.168.1.160
機器2:192.168.1.164
修改兩臺機器的my.cnf檔案,server-id,log-bin,auto-increment-increment,auto-increment-offset 後面兩個引數為防止主鍵衝突而設定。
主主配置有兩個要點:
1、複製賬號
2、定位master資訊。
所以,在兩臺機器上分別執行:
show master status;檢視二進位制檔案的名稱與位置,然後執行:
機器1:GRANT REPLICATION SLAVE ON *.* TO 'bau1'@'192.168.1.164' IDENTIFIED BY '123456'; change master to master_host='192.168.1.164',master_user='bau1',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=452;
機器2:GRANT REPLICATION SLAVE ON *.* TO 'bau1'@'192.168.1.160' IDENTIFIED BY '123456'; change master to master_host='192.168.1.160',master_user='bau1',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=452;
在機器 1上建立一個表,在機器2上檢視。
在機器2上建立一個表,在機器1上檢視。
如果都可以建立,那主主配置完成。
並行複製:
my.cnf配置(主):
gtid_mode=ON
enforce-gtid-consistency
binlog_format=row
my.cnf配置(從):
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=6
master_info_repository = TABLE
relay_log_info_repository = TABLE
gtid_mode=ON
log-slave-updates=ON
enforce-gtid-consistency
binlog_format=row
其他都一樣,唯一不一樣的地方是:
change master to master_host='192.168.18.102',master_user='backup',master_password='123456',master_port=3306,master_auto_position=1;
在實際生產環境中,不會真正用雙主寫入,主鍵衝突問題很難解決。
一般來說,把另一個主庫作為備庫使用。