Xtrabackup Tips

2010-04-8 18:41  |  分类:MySQL

Percona are doing great job on Xtrabackup which help us a lot. We use it on most of our MySQL server, and it works quite fine. Xtrabckup not only helps us make the daily backup(sometimes recovery), but also help a lot setup the replication with less impact on the online server.

It is pleasure to share my experience here,which may make Xtrabackup works better.

1. Is the process of “copy-back” necessary?

Although the wiki tells us do the “copy-back” after the “apply-log”, but people found it is not necessary. Actually it will take a lot of time if you have a huge databases(e.g. > 50G).

Here is the usual process to make recovery from a tar backup,which I did in the last month.

* Extraction of the tar stream:

date && tar -izxvf xtrabak_20100309_0200.tar.gz && date
Wed Mar 10 15:17:32 CST 2010
Wed Mar 10 16:10:01 CST 2010

全文阅读 »

Xtrabackup1.0发布

2009-12-16 20:54  |  分类:MySQL

RC版本发布的两个月后,Percona发布了Xtrabackup的Release 1.0

除了修复一些BUG,最大的改变在于开始支持Windows了。如果由于一些原因,你不得不在Windows上运行MySQL/InnoDB的话,也可以使用使用Xtrabackup了。

在Xtrabackup的wiki上简单的介绍了一下实现的原理: 全文阅读 »

Xtrabackup第一个RC版本

2009-10-28 22:19  |  分类:MySQL

在10月24日,Percona发布了Xtrabackup第一个RC版本0.9.5rc

仍然是一点点的改进,这次Innobackupex增加了参数--no-lock,待备份的数据表都是InnoDB时,而且不需要二进制日志位置,可以实现全程不锁表(否则是会有短暂的锁表)。这里有更多Change log。这个RC版本中,发布了更多平台(RHEL4,5, Debian, FreeBSD, MacOS)的二进制包,免去了编译之苦。

在统计中,我们共使用了3631次备份,尚没有一次因为Xtrabackup本身的bug而备份失败。3631次中有28失败,都是因为诸如“目的地址不可写”、“磁盘分区已经满”等导致。而且也曾做过实验,在高并发写入压力下使用,Xtrabackup表现依旧正常。

在使用Xtrabackup过程中,也遇到过一些问题。在备份同时,如果数据库写入量比较大,Xtrabackup会输出(stderr)大量的备份信息,这曾塞满了我的/tmp空间(4.6G)导致备份失败。因为希望从这些信息中获得”innobackupex: innobackup completed OK! “,所以我不得不准备更大的空间保持这些巨大的无用的日志。这个Bug已经提交在使用--stream备份的时候,xtrabackup会把xtrabackup_logfile临时(默认的)放在/tmp,有时候会把整个/tmp塞满而导致备份失败。这个只有在使用--stream备份时会发生,可以通过参数--tmpdir指定一个临时存放的位置,避免/tmp空间不够的问题。

Xtrabackup在备份5.1数据库的时候,另一个bug是innobackupex.pl脚本的问题,它会导致备份恢复后系统表中的general_log、slow_log不能使用。原因是5.1.12之后,mysql系统表中会增加的数据表general_log、slow_log使用了CVS存储引擎,每一个CVS表有.frm、.CSM、.CSV三个文件,而使用innobackupex.pl备份时,是不会备份.CSM、.CSV的文件的。不过这个Bug可以通过修改innobackupex.pl脚本的方法更正。修复方法如下:

Patch innobackupex.pl to include CSV tables, specifically line 1811 from
    my $wildcard = '*.{frm,MYD,MYI,MRG,TRG,TRN,ARM,ARZ,opt,par}';
to
    my $wildcard = '*.{frm,MYD,MYI,MRG,TRG,TRN,ARM,ARZ,CSM,CSV,opt,par}';

关于Xtrabackup的一个等待:在它的Wiki上介绍Innobackupex时有一个not implemented yet的参数[--incremental],仍然not implemented。

(全文完)

Xtrabackup备份和恢复MySQL(下)

2009-10-19 11:44  |  分类:MySQL,技术细节

作者:周振兴 mail
来自:supu@TaobaoDBA 2009年10月13日星期二
摘要:上篇中我们介绍了Xtrabackup的编译安装,以及如何使用innobackupex来备份和恢复数据库。本文将继续介绍Xtrabackup中的另一个工具xtrabackup(二进制脚本)。innobackupex对xtrabackup进行了封装可以同时备份InnoDB和MyISAM数据表,在备份MyISAM表时会进行全局锁表,如果单独使用xtrabackup,我们不仅可以实现真正的“在线”备份,还可以进行增量备份InnoDB。本文将介绍如何单独使用xtrabackup来备份你的InnoDB数据。(本文PDF版本:上篇 下篇

全文阅读 »

Xtrabackup备份和恢复MySQL(上)

2009-09-2 14:40  |  分类:MySQL,技术细节

作者:mail
来自:TaobaoDBA 2009年9月2日星期三
摘要:本文介绍了XtraBackup的安装(编译安装)和使用。Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。本文测试使用的是0.8版本,与当前最新版本是0.9区别并不大。Xtrabackup有两个主要的工具:xtrabackup、innobackupex,其中xtrabackup只能备份InnoDB和XtraDB两种数据表,innobackupex则封装了xtrabackup,同时可以备份MyISAM数据表。本文仅仅介绍了innobackupex的备份和恢复。

全文阅读 »