简介:
Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。
Xtrabackup有两个主要的工具:xtrabackup、innobackupex
(1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
(2)innobackupex-1.5.1则封装了xtrabackup,是一个脚本封装,所以能同时备份处理innodb和myisam,但在处理myisam时需要加一个读锁
(3)使用帮助:http://www.percona.com/docs/wiki/percona-xtrabackup:start
环境:CentOS 5.4,xtrabackup-1.6.tar.gz
1、首先从http://www.percona.com/下载
wget http://www.percona.com/downloads/XtraBackup/XtraBackup-1.6/Linux/binary/i686/xtrabackup-1.6.tar.gz
2、检查服务器是否安装了Mysql版本,如果没有就要安装好mysql
my.cnf中必须有datadir=/var/lib/mysql
3、开始安装xtrabackup
1)解压
cd /qeedoodb/setup
tar zxvf xtrabackup-1.6.tar.gz
2)拷贝innobackupex、xtrabackup、xtrabackup_51 工具到/usr/bin
cp /qeedoodb/setup/xtrabackup-1.6/bin/innobackupex /usr/bin/innobackupex
cp /qeedoodb/setup/xtrabackup-1.6/bin/xtrabackup /usr/bin/xtrabackup
cp /qeedoodb/setup/xtrabackup-1.6/bin/xtrabackup_51 /usr/bin/xtrabackup_51
4、备份并打包压缩
innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf --database=zztx --stream=tar /data/back_data/ 2>/data/back_data/zztx.log | gzip 1>/data/back_data/zztx.tar.gz
说明:
--database=zztx 单独对zztx数据库做备份 ,若是不添加此参数那就那就是对全库做备份
2>/data/back_data/zztx.log 输出信息写入日志中
1>/data/back_data/zztx.tar.gz 打包压缩存储到该文件中
此处可以写个脚本做备份(backup.sh)
#!/bin/sh
echo "开始备份..."`date`
log=zztx01_`date +%y%m%d%H%M`.log
str=zztx01_`date +%y%m%d%H%M`.tar.gz
innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf --database=zztx --stream=tar /data/back_data/ 2>/data/back_data/$log | gzip 1>/data/back_data/$str
echo "备份完毕..."`date`
5、恢复数据
(1)在创建全量备份后,备份文件是不能restore的,因为这个初始创建的备份只是简单的copy过程,而innodb是事务引擎,所以还需要通过log文件replay committed的事务和回滚uncommitted事务,这样数据库就达到一致的状态,可以restore了。
innobackupex --user=root --password=7ujm8ik, --defaults-file=/etc/my.cnf --apply-log /data/backup/
(2)restore备份文件要保证datadir文件为空,否则会报如下的错误
[root@localhost data]# innobackupex --copy-back /data/backup/2012-06-27_16-32-57/
InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona Inc 2009-2012. All Rights Reserved.
This software is published under
the GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
IMPORTANT: Please check that the copy-back run completes successfully.
At the end of a successful copy-back run innobackupex
prints "completed OK!".
Original data directory is not empty! at /usr/bin/innobackupex line 568.
restore备份文件,达到恢复的状态
innobackupex --user=root --password=7ujm8ik, --defaults-file=/etc/my.cnf --copy-back /data/backup/