本文以简单直接给力为目的。
1、配置网络yum源(保证虚拟机联网)
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.repo
cd /etc/yum.repos.d/
mv CentOS6-Base-163.repo CentOS6-Base.repo
yum clean all
yum makecache
2、安装Xtrabackup工具。
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/tarball/percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz
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;
经查看数据库中有四条数据,此时全备+两次增量备份+二进制日志备份大功告成。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。