Xtrabackup工具进行介绍一

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 概述:Xtrabackup是老牌的mysql技术咨询公司Percona发布的mysql的一个备份还原工具。Xtrabackup是一个开源、免费的支持InnoDB进行热备份的软件。
  1. 概述:

    Xtrabackup是老牌的mysql技术咨询公司Percona发布的mysql的一个备份还原工具。Xtrabackup是一个开源、免费的支持InnoDB进行热备份的软件。

    Xtrabackup可以做到:

  • 不暂停服务器创建InnoDB热备份。
  • 为Mysql做增量备份。
  • 在Mysql服务器之间做在线表迁移。
  • 使创建Mysql Replication更加容易。
  • 备份Mysql而不增加服务器的负载。

 

  1. 软件的下载

 

  1. 软件的安装

    解压:tar -xvf percona-xtrabackup-2.1.2-611.tar.gz

    进入目录:cd /usr/local/src/percona-xtrabackup-2.1.2/bin

    拷贝到/usr/bin目录:cp * /usr/bin

    测试:输入命令xtrbackup,用tab键进行补全说明已经安装成;

     

  2. 软件的介绍

    /usr/local/src/percona-xtrabackup-2.1.2/bin下面有几个工具

-rwxr-xr-x. 1 root root 110729 May 18 2013 innobackupex

lrwxrwxrwx. 1 root root 12 Nov 6 17:28 innobackupex-1.5.1

-rwxr-xr-x. 1 root root 2211237 May 18 2013 xbcrypt

-rwxr-xr-x. 1 root root 2285672 May 18 2013 xbstream

-rwxr-xr-x. 1 root root 13033745 May 18 2013 xtrabackup

-rwxr-xr-x. 1 root root 16333506 May 18 2013 xtrabackup_55

-rwxr-xr-x. 1 root root 80988093 May 18 2013 xtrabackup_56

Xtrabackup有两个主要的工具:xtrabackup、innobackupex

a) xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表;

b) innobackupex是参考了InnoDB Hotbackup的innoback脚本修改而来的.innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的同时备份InnoDB和MyISAM引擎的表,但在处理myisam时需要加一个读锁。并且加入了一些使用的选项。如slave-info可以记录备份恢 复后,作为slave需要的一些信息,根据这些信息,可以很方便的利用备份来重做slave。

c) xbcrypt:用来加密或解密备份的数据。d) xbstream:用来解压或压缩xbstream格式的压缩文件。

Xtrabackup有几种不同的版本,需要根据服务器版本选择相应的程序;

 

  1. 软件的原理

    软件的使用本身是一件很简单的事情,在使用命令之前最好先对软件备份的原理有个大概的了解,保证在后面的命令的使用过程中做到胸有成竹,知道每个命令代表什么含义,每个命令将会产生什么样的后果;

    以下介绍摘自官方:

在InnoDB内部会维护一个redo日志文件,我们也可以叫做事务日志文件。事务日志会存储每一个InnoDB表数据的记录修改。当InnoDB启动时,InnoDB会检查数据文件和事务日志,并执行两个步骤:它应用(前滚)已经提交的事务日志到数据文件,并将修改过但没有提交的数据进行回滚操作。

xtrabackup在启动时会记住log sequence number(LSN),并且复制所有的数据文件。复制过程需要一些时间,所以这期间如果数据文件有改动,那么将会使数据库处于一个不同的时间点。这时,xtrabackup会运行一个后台进程,用于监视事务日志,并从事务日志复制最新的修改。xtrabackup必须持续的做这个操作,是因为事务日志是会轮转重复的写入,并且事务日志可以被重用。所以xtrabackup自启动开始,就不停的将事务日志中每个数据文件的修改都记录下来。

上面就是xtrabackup的备份过程。接下来是准备(prepare)过程。在这个过程中,xtrabackup使用之前复制的事务日志,对各个数据文件执行灾难恢复(就像MySQL刚启动时要做的一样)。当这个过程结束后,数据库就可以做恢复还原了。

以上的过程在xtrabackup的编译二进制程序中实现。程序innobackupex可以允许我们备份MyISAM表和frm文件从而增加了便捷和功能。Innobackupex会启动xtrabackup,直到xtrabackup复制数据文件后,然后执行FLUSH TABLES WITH READ LOCK来阻止新的写入进来并把MyISAM表数据刷到硬盘上,之后复制MyISAM数据文件,最后释放锁。

备份MyISAM和InnoDB表最终会处于一致,在准备(prepare)过程结束后,InnoDB表数据已经前滚到整个备份结束的点,而不是回滚到xtrabackup刚开始时的点。这个时间点与执行FLUSH TABLES WITH READ LOCK的时间点相同,所以MyISAM表数据与InnoDB表数据是同步的。类似Oracle的,InnoDB的prepare过程可以称为recover(恢复),MyISAM的数据复制过程可以称为restore(还原)。

xtrabackup和innobackupex这两个工具都提供了许多前文没有提到的功能特点。手册上有对各个功能都有详细的介绍。简单介绍下,这些工具提供了如流(streaming)备份,增量(incremental)备份等,通过复制数据文件,复制日志文件和提交日志到数据文件(前滚)实现了各种复合备份方式。

简单理解如下,mysql的备份可以分成两部分:

  1. 复制所有的数据文件;
  2. 记录整个过程中的日志文件;

 

  1. 利用Xtrabackup进行数据库的全备
    1. 备份数据库

      xtrabackup_55 --backup –datadir=/data/mysql --target-dir=/data/backup/

    2. 运行prepare

      xtrabackup_55 --prepare --target-dir=/data/backup/

       

  2. 利用Xtrabackup进行数据库的增量备份
    1. 进行数据库的完整备份

      xtrabackup_55 --backup --target-dir=/data/backup/

    2. 创建备份目录,并每日做增量备份

      xtrabackup_55 --backup --target-dir=/data/backup/inc/tue --incremental –basedir=/data/backup

       

      xtrabackup_55 --backup --target-dir=/data/backup/inc/wed --incremental –basedir=/data/backup

       

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Xtrabackup的介绍暂时到此为止,后续继续补充详细的备份和恢复、不停机创建mysql的主从复制……

 

*********************************************************************************************************************

本文作者:JOHN QQ:1916066696 (请备注数据库)

ORACLE技术博客:ORACLE 猎人笔记 http://blog.itpub.net/12679300/

请扫描加微信号!

********************************************************************************************************************

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
关系型数据库 MySQL 数据库
什么是xtrabackup工具?
【5月更文挑战第13天】什么是xtrabackup工具?
93 0
|
关系型数据库 MySQL 数据库
【MySQL】Xtrabackup备份工具使用
Xtrabackup是由percona提供的mysql数据库备份工具,支持在线热备份(备份时不影响数据读写). Xtrabackup有两个主要的工具:xtrabackup、innobackupex 1、xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表 2、innobackupex是参考了InnoDB Hotbackup的innoback脚本修改而来的.innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的 同时备份InnoDB和MyISAM引擎的表,但在处理myisam时需要加一个读锁。并且加入了一些使用的选项
346 0
|
存储 关系型数据库 MySQL
xtrabackup
还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群
|
关系型数据库 MySQL 测试技术
Percona XtraBackup 关于 MySQL备份还原的详细测试
Percona XtraBackup 关于 MySQL备份还原的详细测试一. Percona XtraBackup 的优点。(1)无需停止数据库进行InnoDB热备; (2)增量备份MySQL; (3)流压缩传输到其它服务器; (4)在线移动表; (5)能够比较容易地创建主从同步; (6)备份MySQL时不会增大服务器负载。
1453 0
|
Oracle 关系型数据库 MySQL
|
监控 关系型数据库 MySQL
|
存储 Oracle 关系型数据库
|
MySQL 关系型数据库 数据库
|
存储 关系型数据库 MySQL