1. 程式人生 > >MySQL數據庫主主復制

MySQL數據庫主主復制

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數據庫主主復制