MySQL數據庫主主復制
阿新 • • 發佈:2017-11-14
linux、mysql
結合上篇文章‘MySQL數據庫主從復制’,本文在此基礎上進行MySQL的主主復制
所謂雙主復制,即雙方互為對方的主從,每臺主設備既要配置二進制日誌也要配置中繼日誌;
二進制日誌是記錄數據庫實時操作的,出現故障的話能夠根據二進制日誌進行重現操作,通常結合全量備份來使用;
中繼日誌是從服務器從主服務器的二進制日誌讀取的信息,此讀取操作由從的IO線程完成,然後由從的SQL線程操作中繼日誌的內容;
主服務器(原來的主服務器)
vim /etc/my.cnf.d/server.cnf [server] skip_name_resolve=ON innodb_file_per_table=ON server_id = 1 log_bin = master-log relay_log=relay-log #作為對方的從節點,此處需要配置中繼日誌 auto_increment_offset=1 #定義此節點使用奇數id auto_increment_increment=2 #步長為2 #註意,本機既是主又是從,即可讀可寫,所以不能像配置從一樣配置只讀功能
開啟mariadb.service服務
CHANGE MASTER TO MASTER_HOST=‘192.168.1.106‘,MASTER_USER=‘repluser‘,MASTER_PASSWORD=‘centos‘,MASTER_LOG_FILE=‘master-log.000001‘,MASTER_LOG_POS=505; START SLAVE IO_THREAD,SQL_THREAD; SHOW SLAVE STATUS\G; #主服務器的主功能已經在上篇文章配置好了,這裏只需配置為從即可 #MASTER_LOG_FILE是要復制的主節點的二進制日誌 #MASTER_LOG_POS是要從主節點二進制日誌的哪個位置開始復制,上篇文章未作說明,這裏補上
另一臺主服務器(原從服務器)
vim /etc/my.cnf.d/server.cnf [server] skip_name_resolve = ON innodb_file_per_table = ON server_id = 2 relay_log = relay-log log_bin=master-log auto_increment_offset=2 auto_increment_increment=2
開啟mariadb.service服務
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO ‘repluser‘@‘192.168.1.%‘ IDENTIFIED BY ‘centos‘; FLUSH PRIVILEGES; SHOW MASTER STATUS;
測試:
測試雙主是否生效,即雙方都創建一些庫、表或者插入一些字段,然後在對方數據庫中檢查是否產生新的內容,具體操作不再贅述
雙主復制完成
本文出自 “a_pan” 博客,謝絕轉載!
MySQL數據庫主主復制