首页 > 代码库 > Xtrabackup安装+(全备+增量+二进制日志)备份,你值得拥有。

Xtrabackup安装+(全备+增量+二进制日志)备份,你值得拥有。

本文以简单直接给力为目的。

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;

 

经查看数据库中有四条数据,此时全备+两次增量备份+二进制日志备份大功告成。


本文出自 “12266890” 博客,请务必保留此出处http://12276890.blog.51cto.com/12266890/1945828

Xtrabackup安装+(全备+增量+二进制日志)备份,你值得拥有。