本文以簡單直接給力爲目的。mysql
一、配置網絡yum源(保證虛擬機聯網)sql
rm -rf /etc/yum.repos.d/*
數據庫
wget –P /home/backup/ http://mirrors.163.com/.help/CentOS6-Base-163.repo網絡
mv CentOS6-Base-163.repo /etc/yum.repos.d/CentOS-Base.repoapp
cd /etc/yum.repos.d/ide
mv CentOS6-Base-163.repo CentOS6-Base.repo工具
yum clean allspa
yum makecache日誌
二、安裝Xtrabackup工具。code
tar zxvf percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz -C /usr/src/
cd /usr/src/
cd percona-xtrabackup-2.4.4-Linux-x86_64/
cp bin/* /usr/bin/
cd /usr/src/
wget https://www.percona.com/downloads/percona-toolkit/2.2.19/RPM/percona-toolkit-2.2.19-1.noarch.rpm
yum install -y perl*
rpm -ivh percona-toolkit-2.2.19-1.noarch.rpm
3、全備+兩次增量備+二進制日誌備份。
mkdir-pv /opt/mysqlbackup/{full,inc,binlog}
mysql-uroot -p123456
mysql>createdatabase xingjun;
mysql>createtable shengong(id int(10),name varchar(20));
mysql>insertinto shengong values(1,'yi');
mysql>select* from shengong;
mysql>exit;
全備:
innobackupex--user=root --password=123456 /opt/mysqlbackup/full/
再次添加數據:
mysql-uroot -p123456
mysql>usexingjun;
mysql>insertinto shengong values(2,'er');
mysql>select* from shengong;
mysql>exit;
第一次增量備份:
innobackupex--user=root --password='123456' --incremental /opt/mysqlbackup/inc/--incremental-basedir=/opt/mysqlbackup/full/2017-07-09_10-50-00/
注:2017-07-09_10-50-00此文件爲全備。
mysql-uroot -p123456
mysql>usexingjun;
mysql>insertinto shengong values(3,'san');
mysql>select* from shengong;
mysql>exit;
第二次增量備份:
innobackupex--user=root --password='123456' --incremental /opt/mysqlbackup/inc/--incremental-basedir=/opt/mysqlbackup/inc/2017-07-09_10-50-46/
注:2017-07-09_10-50-46此文件爲第一次增量備份。
mysql-uroot -p123456
mysql>usexingjun;
mysql>insertinto shengong values(4,'si');
mysql>select* from shengong;
mysql>exit;
二進制文件備份:
cp/usr/local/mysql/data/mysql-bin.000001 /opt/mysqlbackup/binlog/
4、模擬數據丟失。
servicemysqld stop
rm-rf /usr/local/mysql/data/*
5、噹噹噹、重點來了、恢復數據。
恢復前準備:
innobackupex--apply-log --redo-only /opt/mysqlbackup/full/2017-07-09_10-50-00/
注:2017-07-09_10-50-00此爲全備。
innobackupex--apply-log --redo-only /opt/mysqlbackup/full/2017-07-09_10-50-00/--incremental-dir=/opt/mysqlbackup/inc/2017-07-09_10-50-46/
注:2017-07-09_10-50-46此爲第一次增量備份。
innobackupex--apply-log --redo-only /opt/mysqlbackup/full/2017-07-09_10-50-00/--incremental-dir=/opt/mysqlbackup/inc/2017-07-09_10-54-58/
注:2017-07-09_10-54-58此爲第二次增量備份。
innobackupex--apply-log /opt/mysqlbackup/full/2017-07-09_10-50-00/
注:2017-07-09_10-50-00此爲全備。
開始恢復數據:
innobackupex--copy-back /opt/mysqlbackup/full/2017-07-09_10-50-00/
注:2017-07-09_10-50-00此爲全備。
6、驗證。
chown-R mysql:mysql /usr/local/mysql/data/
mysql-uroot -p123456
mysql>usexingjun;
mysql>select* from shengong;
mysql>exit;
經查看數據庫中有三條數據,此時全備+兩次增量備份大功告成。
7、經過二進制日誌恢復最後數據。
mysqlbinlog/usr/local//mysql/data/mysql-bin.000001 > /opt/mysqlbackup/binlog/`date+%F`.sql
查看第二次增量備份的二進制日誌信息和position信息:
cat/opt/mysqlbackup/inc/2017-07-09_10-54-58/xtrabackup_info
注:xtrabackup_info其中的一行信息爲:binlog_pos = filename'mysql-bin.000001', position '1040'
vi/opt/mysqlbackup/binlog/2017-07-09.sql
從# at ##開始刪除,一直刪除到# at 1040,包括# at 1040。
注:如下爲2017-07-09.sql文件信息。
#at 205
#17070910:55:53 server id 1 end_log_pos 320 CRC32 0x07b5d487 Query thread_id=2exec_time=1380 error_code=0
use`xingjun`;
SETTIMESTAMP=1499612153;
insertinto shengong values(10,'d')
;
而後保存退出。
開始恢復:
mysql-uroot -p123456
mysql>set sql_log_bin=0;
mysql>usexingjun;
mysql>source/opt/mysqlbackup/2017-07-09.sql
mysql>select* from shengong;
mysql>set sql_log_bin=1;
mysql>exit;
經查看數據庫中有四條數據,此時全備+兩次增量備份+二進制日誌備份大功告成。