使用 XtraBackup 备份 MySQL 数据

一、XtraBackup 简介

  Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle)、Percona Server 和 MariaDB,全部开源并且具有以下优点:
  ① 可以快速可靠的完成数据备份(复制数据文件和追踪事务日志)
  ② 数据备份过程中不会中断事务的处理(热备份)
  ③ 节约磁盘空间和网络带宽
  ④ 自动完成备份鉴定
  ⑤ 因更快的恢复时间而提高在线时间

二、工具安装

使用 XtraBackup 备份 MySQL 数据_第1张图片
操作系统
  1. 安装依赖
yum install libev rsync perl-DBD-MySQL -y
  1. 获取软件rpm包并安装
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm

rpm -ivh percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm

三、全量备份与恢复

  1. 备份数据,同时向数据库中写入数据
innobackupex /backup/mysql/
使用 XtraBackup 备份 MySQL 数据_第2张图片
备份完成后的数据
使用 XtraBackup 备份 MySQL 数据_第3张图片
  1. "准备"一个完全备份(因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务)
innobackupex --apply-log /backup/mysql/2018-01-10_17-09-44 &>> /tmp/error.log
  1. 恢复数据
xtrabackup --copy-back  --datadir=/var/lib/mysql --target-dir=/backup/mysql/2018-01-10_17-09-44
  1. 查看备份时写入的数据是否恢复


    使用 XtraBackup 备份 MySQL 数据_第4张图片
    查询结果

四、增量备份与恢复

  • 增量备份操作
  1. 先准备一个全量备份
xtrabackup --prepare --apply-log-only --target-dir=/backup/mysql/base
  1. 写入新增数据,并进行增量备份
    使用 XtraBackup 备份 MySQL 数据_第5张图片
xtrabackup --backup --target-dir=/backup/mysql/inc1 --incremental-basedir=/backup/mysql/base

如果要继续进行增量备份,只需要在不同的备份目录进行对前一次增量备份做增量备份

xtrabackup --backup --target-dir=/backup/mysql/inc2 --incremental-basedir=/backup/mysql/inc1
  • 恢复操作
  1. 准备基础备份
xtrabackup --prepare --apply-log-only --target-dir=/backup/mysql/base
  1. 将第一次增量备份的数据合并到基础备份中
xtrabackup --prepare --apply-log-only --target-dir=/backup/mysql/base --incremental-dir=/backup/mysql/inc1
  1. 将第二次增量备份的数据合并到基础备份中
xtrabackup --prepare --apply-log-only --target-dir=/backup/mysql/base --incremental-dir=/backup/mysql/inc2
  1. 恢复数据
xtrabackup --copy-back --datadir=/var/lib/mysql --target-dir=/backup/mysql/base

你可能感兴趣的:(使用 XtraBackup 备份 MySQL 数据)