Xtrabackup实现mysql数据的备份与恢复

Xtrabackup介绍

  Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁);mysqldump备份方式是采用的逻辑备份,其最大的缺陷是备份和恢复速度较慢,如果数据库大于50G,mysqldump备份就不太适合。

Xtrabackup安装完成后有4个可执行文件,其中2个比较重要的备份工具是innobackupex、xtrabackup

1)xtrabackup 是专门用来备份InnoDB表的,和mysql server没有交互;

2)innobackupex 是一个封装xtrabackup的Perl脚本,支持同时备份innodb和myisam,但在对myisam备份时需要加一个全局的读锁。

3)xbcrypt 加密解密备份工具

4)xbstream 流传打包传输工具,类似tar

Xtrabackup优点

Xtrabackup优点

1)备份速度快,物理备份可靠

2)备份过程不会打断正在执行的事务(无需锁表)

3)能够基于压缩等功能节约磁盘空间和流量

4)自动备份校验

5)还原速度快

6)可以流传将备份传输到另外一台机器上

7)在不增加服务器负载的情况备份数据

Xtrabackup安装

  1、下载xtrabackup:https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/6/x86_64/Percona-XtraBackup-2.4.9-ra467167cdd4-el6-x86_64-bundle.tar;

  2、在服务器上解压:tar xf Percona-XtraBackup-2.4.9-ra467167cdd4-el6-x86_64-bundle.tar

    

  3、在服务上上安装:yum install percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm -y

    

  4、查看Xtrabackup安装路径:which xtrabackup

    

  5、查看Xtrabackup安装版本:innobackupex -v

    

  到此处,说明Xtrabackup已安装成功;

Xtrabackup全量备份与恢复

  1、备份命令:innobackupex --defaults-file=/etc/my.cnf --user=root --password="wzf...twf" --port=3306 --backup /database_bak/mysql/data

      

   出现 则说明备份成功;

      一般情况下,这个备份不能用于恢复,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务,此时数据文件处于不一致的状态,使用apply-log相关数据性文件保持一致性状态:innobackupex --apply-log /database_bak/mysql/data/2019-08-01_15-18-48/

   

  2、测试一下删除的表是否能恢复

    A、恢复数据之前需要保证数据目录是空的状态;

    B、将原备份数据copy一份到另一个目录下:cp -r /database_bak/mysql/data/2019-08-02_15-30-08 /database_bak/mysql/oldData/

      

    C、执行恢复指令:innobackupex --defaults-file=/etc/my.cnf --copy-back /database_bak/mysql/copyData/2019-08-02_09-59-57

      

    D、出现则说明恢复成功;

      

原文地址:https://www.cnblogs.com/vofill/p/11281071.html