testing-04

XtraBackup

  • Xtrabackup Tips

    ·

    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

    (more…)

  • Xtrabackup1.0发布

    ·

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

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

    在Xtrabackup的wiki上简单的介绍了一下实现的原理: (more…)

  • Xtrabackup第一个RC版本

    ·

    在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。

    (全文完)

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

    (more…)

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

    (more…)