1. 程式人生 > >使用xtrabackup的innobackupex物理備份數據庫+恢復

使用xtrabackup的innobackupex物理備份數據庫+恢復

mysql數據全備恢復

1.準備兩臺服務器分別安裝mysql5.7版本(之前講過安裝了)
db1 11.0.0.51
db2 11.0.0.52

數據目錄均為/data/mysql_data
備份目錄均為/db_all_backup

2.使用db1備份數據庫

#db1和db2安裝以下備份軟件:

yum install  perl-DBD-MySQL perl-devel -y
cd /usr/local/src/
wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/libev-4.15-1.el6.rf.x86_64.rpm
 rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm 
 wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.5/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.5-1.el6.x86_64.rpm
 rpm -ivh percona-xtrabackup-24-2.4.5-1.el6.x86_64.rpm
 #全備指令
 innobackupex --user=root --password=123456  --stream=tar /db_all_backup | gzip > /db_all_backup/mysql_all_`date +%F`.tar.gz 2>/db_all_backup/xtrabackup_`date +%F`.log

 #在/db_all_backup目錄中會生成全備tar包,以及備份日誌

3.在db2上恢復db1的數據

 #db1上將tar包scp到db2上
 scp /all_db_backup/mysql_all_2018-04-18.tar.gz [email protected]:/db_all_backup/

 #解壓該tar包,然後移走該tar包
 3.1 該目錄下會出現幾個重要文件
 xtrabackup_binlog_info
 xtrabackup_checkpoints
 xtrabackup_info

 註意:xtrabackup_info文件,這個文件是按照db1數據庫備份的,一般db2和db1環境配置都會保持一致,所以我們可以直接進行恢復,如果db2中的目錄與db1不一樣,要註意修改xtrabackup_info文件。

 #db2恢復前需要將db2庫stop,然後移走數據目錄備份
 /etc/init.d/mysqld stop
 mv /data/mysql_data /data/mysql_data.bak

 #創建mysql的數據目錄
 mkdir /data/mysql_data -p

 #db2恢復開始執行(以下是恢復指令,這條指令會將db_all_backup中的解壓後的數據,同步到我們的db數據目錄)
 innobackupex  --defaults-file=/etc/my.cnf --copy-back --rsync /db_all_backup/

 #上一步如果執行成功,就可以將數據目錄改為mysql用戶管理
 chown -R mysql:mysql /data/mysql_data

 #啟動db2數據庫,就可以看到和db1一樣的數據了
 /etc/init.d/mysqld start

使用xtrabackup的innobackupex物理備份數據庫+恢復