Percona Server for MySQL Replication 主從伺服器修復簡易方法

使用 MySQL Server Replication 機制可能遭遇到實體上或應用程式方面的問題造成主從伺服器 Replication 中斷, 通常可以經由在 Slave 端伺服器下個 SQL 查詢, 來了解中斷原因。藉由錯誤資訊來排除 Replication 問題, 例如以下面語法查詢
SHOW SLAVE STATUS \G

如果是應用程式方面誤操作, 造成資料不同步, 可以使用以前介紹過的 Percona Tool Kit 來修復, 若是有更複雜原因, 像是磁碟損毀, Replication 錯亂資料已難以復原, 要重新製作 MySQL Server Replication, 最簡單的方法是從 Master 端伺服器製作一個完整備份, 可以使用 Percoan Xtrabackup 工具完整複製出一份 mysql 目錄下基礎資料, 包括 InnoDB 相關 log 檔案, 資料庫檔案等, xtrabackup_info 檔案則包含了 Replication 恢復所需的資訊

以下為 xtrabackup_info 內容範例
Percona Server for MySQL Replication 主從伺服器修復簡易方法

停止 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 時, 即是完成同步
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!