MySQL主主互備模式是指將兩個或多個MySQL服務器配置成對等的主服務器并進行實時數據同步,使它們可以互相代替,在一臺服務器出現故障時另外一臺服務器可以立刻接管其工作,保持服務的連續性和高可用性。
主主互備模式常常用于高流量訪問、大數據量操作和關鍵業務應用等場景,在保證數據可靠性和性能的同時也提高了系統穩定性。
# 示例代碼1:主主互備模式配置 # 安裝并啟動 MySQL 數據庫 sudo apt install mysql-server sudo systemctl start mysql # 設置主服務器A的配置文件 vi /etc/mysql/my.cnf [mysqld] server-id=1 log_bin=/var/log/mysql/mysql-bin.log binlog_do_db=mydb relay_log=/var/log/mysql/mysql-relay-bin.log log_slave_updates=1 auto_increment_increment=2 auto_increment_offset=1 # 設置主服務器B的配置文件 vi /etc/mysql/my.cnf [mysqld] server-id=2 log_bin=/var/log/mysql/mysql-bin.log binlog_do_db=mydb relay_log=/var/log/mysql/mysql-relay-bin.log log_slave_updates=1 auto_increment_increment=2 auto_increment_offset=2 # 在主服務器A和B上創建replication賬號 grant replication slave on *.* to 'replication'@'192.168.1.2' identified by 'password'; grant replication slave on *.* to 'replication'@'192.168.1.3' identified by 'password'; # 分別在兩個MySQL服務器上執行以下命令 mysql>flush tables with read lock; mysql>show master status; # 記錄下輸出結果中的File和Position # 在主服務器A和B上分別執行以下命令 change master to master_host='192.168.1.x', master_user='replication', master_password='password', master_log_file='mysql-bin.000001', master_log_pos=123456; start slave; # 執行以下命令檢查主從同步狀態 show slave status\G;
在配置過程中,需要注意以下幾點:
- 兩個MySQL服務器必須使用相同的數據庫
- 服務器的server-id必須不同
- 兩臺服務器之間需要通過不同的網絡接口互相通信,網絡延遲要小于等于30ms
- 在切換主從角色時需要先停止主從同步,否則可能導致數據不一致
下一篇粗細正常css