日期:2014-05-16  浏览次数:20957 次

MySQL备份恢复之XtraBackup

一、 简介

        我们知道,针对InnoDB存储引擎,MySQL本身没有提供合适的热备工具,ibbackup虽是一款高效的首选热备方式,但它是是收费的。好在Percona公司给大家提供了一个开源、免费的Xtrabackup热备工具,它可实现ibbackup的所有功能,并且还扩展支持真正的增量备份功能,是商业备份工具InnoDB Hotbackup的一个很好的替代品。

Xtrabackup包括两个主要工具:Xtrabackup和innobackupex:

Xtrabackup只能备份InnoDB和XtraDB两种引擎表,而不能备份MyISAM数据表。

innobackupex则是参考InnoDBHotbackup的innoback脚本修改而来的一个perl脚本,它封装了xtrabackup,主要是为了能方便的同时备份InnoDB和MyISAM引擎表。但在处理MyISAM时需要加一个读锁,这会阻塞线上服务的写操作,所以数据库中MyISAM表越少越好。另外,该工具还加入了一些其它使用选项,比如slave-info,可以在备份中记录一些Slave需要的信息,根据这些信息,可以很方便的利用备份重做Slave。

        通过Xtrabackup,不但可在线(热)备份整个库的InnoDB、XtraDB表,还可在上一次整库备份的基础上做增量备份(InnoDB only),其工作原理如下:

        首先完成一个完全备份,并记录下此时检查点的LSN(Log Sequence Number);在进行增量备份时,比较表空间中每个页的LSN是否大于上次备份时的LSN,如果是,则备份该页,同时记录当前检查点的LSN。

注意:在增量备份时,作为备份基础的全备文件不能压缩,否则备份失效;另外,增量备份期间,表结构变更的话,变更部分的备份也会失效。

二、安装

         Pecona官方网站提供了Xtrabackup源码包、二进制包以及RPM包三种安装包,下载地址为:http://www.percona.com/downloads/XtraBackup/ 本文选择最简单方便的RPM包安装,如下:

[root@db ~]# rpm -ivh percona-xtrabackup-2.0.5-499.rhel5.x86_64.rpm

warning: percona-xtrabackup-2.0.5-499.rhel5.x86_64.rpm:Header V4 DSA signature: NOKEY, key ID cd2efd2a

Preparing...               ########################################### [100%]

  1:percona-xtrabackup    ########################################### [100%]

   安装完成后,会在/usr/bin/目录下生成如下命令工具:

[root@db ~]# cd /usr/bin/

[root@db bin]# ls xtr* inno*

innobackupex    innochecksum xtrabackup_51  xtrapchar  xtrapinfo xtrapproto  xtrapstats

innobackupex-1.5.1  xtrabackup   xtrabackup_55  xtrapin    xtrapout  xtrapreset

其中:

innobackupex                                 是备份时直接使用的工具,它是一个perl脚本,内部封装xtrabackup;

innobackupex-1.5.1                       是innobackupex文件的一个软链接;

xtrabackup                                       是备份Innodb引擎的脚本;

xtrabackup_51                                xtrabackup运行时需要调用的工具,适用于MySQL 5.1版本;

xtrabackup_55                                xtrabackup运行时需要调用的工具,适用于MySQL 5.5版本;

三、Xtrabackup的使用

        首先来学习使用Xtrabackup这个命令工具,前面提到:它只能备份InnoDB和XtraDB两种引擎表,不能备份MyISAM数据表。

通过--help参数查看该命令的用法,如下:

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

参数解读如下:

友情链接: 爱易网 云虚拟主机技术 云服务器技术 程序设计技术 开发网站 APP开发教程
Copyright © 2013-2024 爱易网页 当前在线:307人  网站在2时43分23秒内访问总人数:51285人 当前 19.65%  粤ICP备18100884号-2
--defaults-file=# 标识默认的配置文件,可显式手工指定,也可不设置;若不设置,则Xtrabackup缺省将从以下目录查找配置文件:
/etc/my.cnf    
/etc/mysql/my.cnf       
/usr/local/etc/my.cnf 
~/.my.cnf 
然后从中读取[mysqld]和[xtrabackup]配置段。[mysqld]中只需指定datadir、innodb_data_home_dir、innodb_data_file_path、innodb_log_group_home_dir、innodb_log_files_in_group、innodb_log_file_size这6个参数即可让Xtrabackup正常工作。
--defaults-extra-file=# 如果使用了该参数,则会在读取了全局配置文件后,再读取这里指定的配置文件