SHOW SLAVE STATUS \G
如果是應用程式方面誤操作, 造成資料不同步, 可以使用以前介紹過的 Percona Tool Kit 來修復, 若是有更複雜原因, 像是磁碟損毀, Replication 錯亂資料已難以復原, 要重新製作 MySQL Server Replication, 最簡單的方法是從 Master 端伺服器製作一個完整備份, 可以使用 Percoan Xtrabackup 工具完整複製出一份 mysql 目錄下基礎資料, 包括 InnoDB 相關 log 檔案, 資料庫檔案等, xtrabackup_info 檔案則包含了 Replication 恢復所需的資訊
以下為 xtrabackup_info 內容範例
停止 Slave 端 MySQL Server
service mysql stop
回存資料必須清空 /var/lib/mysql 目錄內的檔案, 建議可先備份舊資料出來, 例如:
mv /var/lib/mysql /var/lib/mysql_backup
mkdir /var/lib/mysql
在 Slave 端伺服器回存資料
innobackupex --move-back /path/to/backup
/path/to/backup 是你將 Master 端 Xtrabackup 出來的檔案放到 Slave 端伺服器的目錄
變更檔案權限
chown -R mysql:mysql /var/lib/mysql
啟動 Slave 端 MySQL Server
service mysql start
進入 MySQL command line
mysql -u root -p
設定 Binlog 檔案名稱與位置
CHANGE MASTER TO
MASTER_HOST='192.168.1.123',
MASTER_USER='repl_username',
MASTER_PASSWORD='repl_password',
MASTER_LOG_FILE='mysqld-bin.000940',
MASTER_LOG_POS=94259203;
以上範例為:
1. Master 端 MySQL Server 的 IP 位址 192.168.1.123
2. 使用 Replication 用戶名稱"repl_username"帳號與密碼"repl_password"
3. 指定 Log 檔名稱為"mysqld-bin.000940"
4. 指定 Log 位置為 "94259203" 起始
開始 Replication
START SLAVE;
檢視 Replication Slave 端的狀況與同步進度
SHOW SLAVE STATUS \G
看到 Seconds_Behind_Master 的值為 0 時, 即是完成同步