下載 XtraBackup
MySQL5.7我們使用 XtraBackUp2.4版本 下面是網址
下載文件為 percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm
進行安裝
預先安裝 libev perl-DBD-MySQL perl-Digest-MD5
yum -y install libev
yum -y install perl-DBD-MySQL
yum -y install perl-Digest-MD5
或者一次安裝
yum -y install libev perl-DBD-MySQL perl-Digest-MD5
如果不安裝依賴直接安裝rpm會報錯
rpm -ivh percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm
驗證
rpm -qa | grep perc
創建備份用戶
grant reload,lock tables,replication client,create tablespace,super, PROCESS ,INSERT,SELECT on *.* to 'backup'@'%' identified by '123456';
flush privileges;
全量備份
innobackupex --defaults-file=/etc/my.cnf --user=backup --password=123456 --socket=/usr/local/mysql/mysql.sock /usr/local/mysqlbackup/
還原全量備份
上一步產生的備份文件是按時間戳產生的目錄,我們來看下我們的剛才產生的全備文件
一 . 如果我們想要使用2020-04-11_08-26-09進行還原,直接進行還原是不行的,需要先對其進行prepare處理,處理成功后才能使用其進行還原
innobackupex --Apply-log --use-memory=100M /usr/local/mysqlbackup/2020-04-11_08-26-09
二. 關閉mysql服務
systemctl stop mysql
systemctl status mysql
三. 清空mysql data目錄
cd /usr/local/mysql/data/
rm -rf *
如果是生產環境直接還原,則不建用刪除文件,可以將文件目錄重新命名,然后新建一個數據目錄,如果還原驗證 沒有問題,在刪除老數據,如果有問題,可以將老數據還原回來
cd /usr/local/mysql/data/
mv data olddata
mkdir data
四. 開始還原
innobackupex --copy-back /usr/local/mysqlbackup/2020-04-11_08-26-09
五. 重置權限給mysql
chown -R mysql:mysql /usr/local/mysql/data
六. 啟動mysql服務
systemctl restart mysql
systemctl status mysql