xtrabackup 全量与增量备份恢复

今天简单介绍一下 MYSQL 免费热备工具 XtraBackup , 特别是几个使用时值得注意的地方。
这里首先代表所有使用者感谢PERCONA的无私贡献。

1. 下载XtraBackup并安装
当前最新的版本是1.6 ,从这里可以选择不同OS的相应版本:
http://www.percona.com/downloads/XtraBackup/XtraBackup-1.6/[@more@]

在LINUX下你可以直接运行:
wget http://www.percona.com/redir/downloads/XtraBackup/XtraBackup-1.6/RPM/rhel5/x86_64/xtrabackup-1.6-245.rhel5.x86_64.rpm
rpm -ivh xtrabackup-1.6-245.rhel5.x86_64.rpm


2. 数据库中建立备份账号
GRANT SELECT, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
flush privileges;
这个帐户主要是用来完成备份时一些锁表等工作;


3. 全量备份与恢复
一般库不大(< 200G),我们就选择用全量备份 ;
innobackupex-1.5.1 工具是用PERL包装过的”xtrabackup“,他不旦可以备份INNODB,还可以备份MYISAM等非事务数据库;

3.1 全量备份
# 指定mysql配置文件路径
mycnf=/etc/my.cnf
#指定备份根目录
backup_path=/data/mysqlbackup
# 开始备份
innobackupex-1.5.1 --user=username --password=password --host=127.0.0.1 --port=3306 --slave-info --tmpdir=$backup_path --defaults-file=$mycnf $backup_path 2> $backup_path/xtrabk.log

### 注意点:
在备份过程中,把INNODB数据文件备份完成后,会锁住整个库,并开始复制MYISAM等非事务引擎的数据和.frm;
所以如果你拥有比较多的MYISAM表,锁库的时候会持续很长。如果是在主库上运行,千万注意。

3.2 全量恢复
3.2.1 应用日志
## 这个过程主要是产生REDOLOG并将备份期间产生的REDO应用到数据文件中;
## xtrabackup 会启动一个INNODB进程去做,与你当前在跑的不冲突
innobackupex-1.5.1 --apply-log /data/mysqlbackup/

3.2.2 复制数据文件到数据目录
## 这个过程将恢复好的数据复制到my.cnf中指定的数据目录中。 这时你需要把原有的实例停掉
innobackupex-1.5.1 --copy-back /data/mysqlbackup/

4. 增量备份
增量备份我们只能使用xtrabackup工具;
1)只能用于INNODB
2)my.cnf文件[mysqld]中需要设置 default_table_type=InnoDB

4.1 全量备份(参考 3.1)

4.2 增量备份 (只复制变化过的块)

#指定备份根目录
backup_path=/data/mysqlbackup/2011-06-02_19-05-46/
#指定备份根目录
incre_path=/data/mysqlbackup/incre001
#开始备份
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=$incre_path --incremental-basedir=$backup_path
在/data/mysqlbackup/incre001将产生一些.delta数据文件;
另外可以注意xtrabackup_checkpoints这个文件lsn的变化


4.3 恢复 (先恢复全量备份的日志)
## 用增量备份加入全量数据
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/mysqlbackup/2011-06-02_19-05-46/
xtrabackup --target-dir=/data/mysqlbackup/2011-06-02_19-05-46/ --prepare --incremental-dir=/data/mysqlbackup/incre001
## 应用日志
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/mysqlbackup/2011-06-02_19-05-46/

4.4 bug
如果在全量后,有新增的数据文件,恢复的时候会失败;
xtrabackup: error: cannot open /home/mysql/backup/2011-06-02_20-04-44//d1/t2.ibd
xtrabackup: Error: xtrabackup_apply_delta() failed.

最后还是大家动手试试;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/703656/viewspace-1050713/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/703656/viewspace-1050713/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值