廢棄舊主庫,將一台從庫提升為新主,並掛載新從庫。要求業務零感知、數據零丟失。
STOP SLAVE; RESET MASTER; -- 清空舊 binlog,重新開始 mv master.info relay-log* /tmp/ -- 清理中繼文件 -- 修改 my.cnf 新增 expire_logs_days = 15 innodb_file_per_table = 1
SHOW MASTER STATUS; -- 記下 File、Position -- 新從庫導入 mysql -u root -p < db_full_2024-01-15.sql -- 建立複製 CHANGE MASTER TO MASTER_HOST='110.10.1.102', MASTER_USER='repl', MASTER_PASSWORD='repl_pass', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154; START SLAVE;
階段 關鍵動作 風險點 準備 確認備份完整、Binlog 完整、網路互通 備份文件損壞、Binlog 缺失 切換 舊主只讀 → 新主 RESET MASTER → 導入 → CHANGE MASTER 位置錯誤導致數據不一致 驗證 SHOW SLAVE STATUS、核心表行數對比、應用煙測 延遲未追平、觸發器/存儲過程缺失 收尾 UNLOCK TABLES、更新應用連接串、監控接入 應用未切換、舊主殘留寫入 進階:GTID 方式(5.6+ 推薦)