MySQL主從在線重做從庫
現有主從架構,從庫損壞或者需要更換從庫,不管什麼原因現在就是要重做從庫了,現在推薦使用一個第三方工具—xtrabackup
(以下過程是經歷生產環境實施的,放心使用)
主庫 | 192.168.10.128 |
---|---|
從庫 | 192.168.10.129 |
1. 主從庫上都安裝xtrabackup
在 https://download.csdn.net/download/mfanoffice2012/12505598下載離線安裝包,傳到兩臺MySQL服務器;
unzip innodbbackup.zip
cd innodbbackup/
#安裝所有依賴包
rpm -ivh needed/*
#安裝xtrabackup,MySQL8使用xtrabackup-80版,MySQL8以前版本使用xtrabackup-24版本
rpm -ivh xtrabackup/percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm
#查看安裝
xtrabackup -version
2. 備份主庫
**必須條件:**主庫和從庫my.cnf中的server-id要不相同,主啓動二進制日誌記錄。
用新安裝的xtrbackup備份mysql的data下的所有文件
innobackupex --defaults-file=/mysql/mysql/my.cnf --user=root --password=123456 --port=3306 --socket=/tmp/mysql.sock /mysql/backup/
3. 將備份文件夾傳輸到從庫上
rsync -avprP -e ssh /mysql/backup/2020-06-08_17-16-02 192.168.10.129:/mysql/backup
4. 從庫上恢復數據
事務日誌恢復(–apply-log)
innobackupex --defaults-file=/mysql/mysql/my.cnf --user=root --password=123456 --port=3306 --apply-log /mysql/backup/2020-06-08_17-16-02/
複製數據恢復(–copy-back)
在此恢復前先把從庫現有的data目錄移走
innobackupex --defaults-file=/mysql/mysql/my.cnf --user=root --password=123456 --port=3306 --copy-back --rsync /mysql/backup/2020-06-08_17-16-02/
5. 刪除datadir下的事務日誌log文件
cd /mysql/mysql/data
rm -rf ib_logfile*
6. 啓動從庫mysql
略
7. 配置主從同步
備份時的binlog-file
cat /mysql/backup/2020-06-08_17-16-02/xtrabackup_binlog_info
mysql-bin.000008 6787793
記住這兩條信息,接下來做同步時使用
change master to master_host='192.168.10.128',master_user='replication',master_password='replication',master_log_file='mysql-bin.000008',master_log_pos=6787793;
start slave;
show slave status\G
此處的master_user和master_password就是一開始做主從同步時使用的用戶和密碼。
到這在線重做從庫就完成了。。。