xtrabackup实现完全备份、增量备份和部分备份

一、Xtrabackup备份工具

  • Percona公司针对innodb存储引擎的数据库存储备份工具Xtrabackup,对innodb官方备份工具innodbbackup的二次研发和封装,支持热备份和增量备份:

  • 下载网站:https://www.percona.com/downloads/XtraBackup/LATEST/

  • 使用版本:
    percona-xtrabackup-24-2.4.7-2.el7.x86_64.rpm

二、Xtrabackup特点

  • 对MyISAM存储引擎支持温备,不支持增量备份;
  • 对InnoDB支持热备,增量备份;
  • 物理备份,速率快、可靠;备份完成后自动校验备份结果集是否可用;还原速度快;
使用格式

Usage: [innobackupex [--defaults-file=#] --backup | innobackupex [--defaults-file=#] --prepare] [OPTIONS]

备份使用的日志:

过程:备份 --> 应用日志 --> 还原
应用日志:--apply-log
还原:--copy-back

三、完全备份

#完全备份到指定目录
innobackupex --user=root --p 123 -H localhost /data/backup/ 
#查看备份目录内容 
ls /data/backup/2108_xxxx
#还原数据库,确认目录下没有数据
mkdir /data/backup -pv
#在备份点目录下,合并已提交的事物,回滚未提交的事物
innobackupex --apply-log  ./
#复制备份点的备份目录,到此要恢复的目录下
innobackupex --copy-back ./
#修改mysql目录下属主属组
chown -R mysql.mysql  /var/lib/mysql/
#启动mysql
systemctl start mariadb.service

四、增量备份

#因为Myisa不支持增量,修改存储引擎为innodb
USE 'hellodb';

#指明基于那个全量备份路径做增量备份
innobackupex -u root -p 123 --incrementanl /data/backup/  --incremental-basedir=/data/backup/2018_xx1
#指明基于上一个增量备份路径做增量备份
innobackupex -u root -p 123 --incrementanl /data/backup/  --incremental-basedir=/data/backup/2018_xx2
#备份二进制文件
cd /data/backup/2018.xx2
less xtravackup_binlog_info #查看最后位置
#保持二进制文件到指定目录
cd /var/lib/mysql
mysqlbinlog -j xxxx master-log.xxxxx > /data/backup/binlog.sql

#还原数据库
#准备,全量合并第一个增量备份,只提交不回滚
innobackupex --apply-log --redo-only 2018.xxx  --incremental-dir=2018.xx1
#准备,全量合并第二个增量备份,只提交不回滚
innobackupex --apply-log --redo-only 2018.xxx  --incremental-dir=2018.xx2
#对合并后的全量备份做回滚
innobackupex --apply-log  2018.xxx
#恢复
innobackupex --copy-back 2018.xxx
cd /var/lib/mysql/
chown -R mysql.mysql ./*
systemctl start mariadb.service
mysql
mysql < /data/backup/binlog.sql

五、完全备份加二进制日志binlog备份

备份:innobackupex  --user  --password=  --host=  /PATH/TO/BACKUP_DIR
准备:innobackupex --apply-log  /PATH/TO/BACKUP_DIR
恢复:innobackupex --copy-back
注意:--copy-back需要在mysqld主机本地进行,mysqld服务不能启动;
innodb_log_file_size可能要重新设定;
首先把完全和增量中的所有事物合并,然后未完成的回滚,恢复数据库
总结:完全+增量+binlog
备份:完全+增量+增量+...

六、完全备份加差异备份

准备:
innobackupex --apply-log --redo-only BASEDIR
innobackupex --apply-log --redo-only BASEDIR  --incremental-dir=INCREMENTAL-DIR

恢复:
innobackupex --copy-back BASEDIR

备份单库时候命令加上:
--databases

你可能感兴趣的:(xtrabackup实现完全备份、增量备份和部分备份)