使用Xtrabackup在线备份及恢复MySQL2014-05-12Xtrabackup是由percona开发的一个开源软件,它是innodb热备工具ibbackup(收费的商业软件)的一个开源替代品 。Xtrabackup由个部分组成:xtrabackup和innobackupex,其中xtrabackup工具用于备份innodb和 xtraDB引擎的表;而 innobackupex工具用于备份myisam和innodb引擎的表,本文将介绍如何用innobackupex工具做全量和增量备份。官网:http://www.percona.com/docs/wiki/percona-xtrabackup:start安装声明:以下操作最好以mysql用户执行。首先,通过wget下载源码tar包:wget http://www.percona.com/redir/downloads/XtraBackup/LATEST/source/percona-xtrabackup-2.1.5.tar.gz安装依赖包:yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses-devel zlib-devel解压缩tar:tar -zxvf percona-xtrabackup-2.1.5.tar.gzcd percona-xtrabackup-2.1.5utils/build.sh脚本会根据指定的引擎版本,自动解压缩适当的MySQL源码包并进行编译,这是最简单的安装方式。 当你在命令行下不带任何参数执行该脚本时,出现如下提示:
[mysql@epay100 ~/software/percona-xtrabackup-2.1.5 ]$ ./utils/build.shBuild an xtrabackup binary against the specified InnoDB flavor.Usage: build.sh CODEBASEwhere CODEBASE can be one of the following values or aliases:innodb51 | pluginbuild against InnoDB plugin in MySQL 5.1innodb55 | 5.5 build against InnoDB in MySQL 5.5innodb56 | 5.6,xtradb56, build against InnoDB in MySQL 5.6 | mariadb100xtradb51 | xtradb,mariadb51build against Percona Server with XtraDB 5.1 | mariadb52,mariadb53xtradb55 | galera55,mariadb55build against Percona Server with XtraDB 5.5
根据上面提示和你使用的存储引擎及版本,选择相应的参数即可。因为我用的是MySQL 5.6,所以执行如下语句安装 :./utils/build.sh innodb56以上语句执行成功后,表示安装完成。最后,把生成的二进制文件拷贝到一个自定义目录下(本例中 为/home/mysql/admin/bin/percona-xtrabackup-2.1.5),并把该目录放到环境变量PATH中。cp ./innobackupex /home/mysql/admin/bin/percona-xtrabackup-2.1.5cp ./src/xtrabackup_56 ./src/xbstream /home/mysql/admin/bin/percona-xtrabackup-2.1.5全备及其恢复全备:执行如下语句进行全备:innobackupex --defaults-file=/opt/mysql/my.cnf --user=root --password=*** /backup/mysql/data该语句将拷贝数据文件(由my.cnf里的变量datadir指定)至备份目录下(/backup/mysql/data),注意:如果不指 定--defaults-file,默认值为/etc/my.cnf。备份成功后,将在备份目录下创建一个时间戳目录(本例创建的目录为/backup/mysql/data/2013-10-29_09-05-25) ,在该目录下存放备份文件。