MySQL 3.23.15+ 支援資料庫複寫,實現:
| 節點 | IP | 角色 |
|---|---|---|
| A | 10.10.10.22 | Master / Slave |
| B | 10.10.10.53 | Slave / Master |
版本:MySQL 4.0.4-beta-max-nt-log,OS:Windows 2000
-- 節點 A 執行
GRANT FILE ON *.* TO 'backup'@'10.10.10.53' IDENTIFIED BY '1234';
-- 節點 B 執行
GRANT FILE ON *.* TO 'backup'@'10.10.10.22' IDENTIFIED BY '1234';
CREATE DATABASE backup;
my.ini[mysqld]
server-id = 1
log-bin
# log-bin = c:\mysqlbak\mysqlbinlog # 可指定日誌路徑與前綴
binlog-do-db = backup # 僅記錄 backup 資料庫變更
重啟服務,執行 SHOW MASTER STATUS; 確認二進制日誌狀態。
my.ini[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; 確認 Slave_IO_Running=Yes、Slave_SQL_Running=Yes。
master.info,修改複寫設定必須先刪除此檔案再重啟,否則舊設定優先生效*.err 日誌,修正後執行 SLAVE START 恢復同步在模式一基礎上,雙向新增對方為 Master 的設定:
[mysqld]
master-host = 10.10.10.53
master-user = backup
master-password = 1234
replicate-do-db = backup
master-connect-retry = 10
[mysqld]
log-bin = c:\mysqlbak\mysqlbinlog
binlog-do-db = backup
完成雙向熱備,任一節點寫入 backup 資料庫即同步至另一節點。
GTID (Global Transaction ID) 取代檔案定位點複寫CHANGE MASTER TO 動態配置取代 my.cnf 靜態配置SHOW SLAVE STATUS → performance_schema.replication_*