MySQL 從 3.23.15 版本起提供資料庫複制功能,支援主從模式與互相備份模式,透過設定檔即可實現兩台資料庫的同步。設定檔在 Unix 系統通常位於 /etc/mysql/my.cnf 或使用者家目錄下的 my.cnf;Windows 環境則使用 my.ini(由 winmysqladmin.exe 產生)。
在主從兩台伺服器分別執行:
GRANT FILE ON *.* TO backup@'10.10.10.22' IDENTIFIED BY '1234';
CREATE DATABASE backup;
[mysqld]
server-id=1
log-bin
binlog-do-db=backup
重啟服務後,執行 SHOW MASTER STATUS 確認二進位日誌狀態。
[mysqld]
server-id=2
master-host=10.10.10.22
master-user=backup
master-password=1234
master-port=3306
master-connect-retry=60
replicate-do-db=backup
重啟服務後,執行 SHOW SLAVE STATUS 檢查同步狀態。注意:若修改從屬設定,需先刪除資料目錄下的 master.info 才能生效。
在 A 加入從屬設定、B 加入主伺服器設定即可實現 B→A 同步:
master-host=10.10.10.53
master-user=backup
master-password=1234
replicate-do-db=backup
master-connect-retry=10
log-bin=c:/mysqllog/mysqlbin
binlog-do-db=backup
重啟兩台伺服器後即可實現雙向熱備。若發生錯誤導致同步執行緒停止,修正後執行 SLAVE START 重新啟動同步。
向 B 批量插入 187 萬筆資料,A 端每秒可同步更新約 2,500 筆,驗證架構可用性。