使用xtrabackup对数据做增量备份

第三方软件percona-xtrabackup-*.rpm

1在线备份(备份时不锁表)

xtrabackup:c程序,支持InnDB/XtraDB存储引擎的表

innobackupex:以Perl脚本封装xtrabackup,还支持myisam存储引擎的表

安装时有依赖包perl-Time-HiRes 需要yum装依赖包

xtrabackup_56 选项 (增量备份,增量恢复,56代表版本)

必须先有一次完整备份,因为只有完整备份后,在备份时,才知道哪些数据是新产生的,备份数据时只备份表中的数据,不备份表结构(若表不存在,使用它的备份文件无法恢复数据)

常用选项:

--backup    备份数据

--datadir=数据库目录   指定数据库目录

--target-dir=目录名    指定备份文件存储的位置

--incremental-basedir=目录名   增量备份时,指定上一次备份文件存储的目录

--incremental-dir=目录名   准备恢复数据时,指定增量备份文件存储的目录

--prepare 准备恢复数据

备份数据:

第一次完整备份[root@A Packages]# xtrabackup_56   --backup --datadir=/ar/lib/mysql  --target-dir=/haha

第二次增量备份[root@A Packages]# xtrabackup_56 --backup  --datadir=/var/lib/mysql  --incremental-basedir=/haha  --target-dir=/hahanew1

第三次增量备份[root@A Packages]# xtrabackup_56 --backup  --datadir=/var/lib/mysql  --incremental-basedir=/hahanew1  --target-dir=/hahanew2

使用xtrabackup_56命令恢复数据 

1 准备恢复数据

xtrabackup_56 --prepare  --datadir=/var/lib/mysal  --target-dir=/haha

xtrabackup_56 --prepare  --datadir=/var/lib/mysal  --target-dir=/haha --incremental-dir=/hahanew1

xtrabackup_56 --prepare  --datadir=/var/lib/mysal  --target-dir=/haha --incremental-dir=/hahanew2

2 把备份文件拷贝到数据库目录下

cp /haha/表名/表名.ibd    /var/lib/mysql/表名

重启mysql服务