安装成功xtrabackup/usr/bin/xtrabackup --defaults-file=/etc/my.cnf --user=root --password=123 --backup --target-dir=/home/lh
Warning: /usr/bin/xtrabackup: ignoring option '--log-stream' due to invalid value 'my.log'
/usr/bin/xtrabackup  Ver 1.5 Rev 203 for 5.1.53 pc-linux-gnu (i686)
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /var/lib/mysql
xtrabackup: Target instance is assumed as followings.
xtrabackup:   innodb_data_home_dir = ./
xtrabackup:   innodb_data_file_path = ibdata1:10M:autoextend
xtrabackup:   innodb_log_group_home_dir = ./
xtrabackup:   innodb_log_files_in_group = 2
xtrabackup:   innodb_log_file_size = 5242880
InnoDB: Error: log file ./ib_logfile0 is of different size 0 134217728 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!不知道如何解决
(/etc/my.cnf几乎没有设置什么的)

解决方案 »

  1.   

    换了台机器  测试成功usr/bin/xtrabackup --defaults-file=/etc/my.cnf --user=root --password=123 --backup --target-dir=/your directory
      

  2.   

    http://www.orczhou.com/index.php/2009/09/xtrabackup-mysql-innodb/
    一、 环境测试主机OS:Linux RHEL AS 3MySQL InnoDB环境:innodb_data_file_path = ibdata1:1G;ibdata2:1G;ibdata3:1G初始化数据:use test;
    CREATE TABLE items(id INT,var1 VARCHAR(10));
    #使用脚本随机插入约1000万数据 下载XtraBackup:http://www.percona.com/mysql/xtrabackup/0.8/source/这里下载的是0.8版本的源码包下载MySQL源码包:http://dev.mysql.com/downloads/mysql/5.0.html#source因为是编译安装XtraBackup,需要使用MySQL的源代码二、 编译安装你也可以下载对应平台的二进制版本XtraBackup,免去编译安装的步骤,不过目前二进制版本支持的平台并不多,所以这里列出编译的步骤。tar zxvf mysql-5.0.85.tar.gz #解压源码包tar zxvf xtrabackup-0.8-src.tar.gz #解压源码包mv xtrabackup-0.8-src ./mysql-5.0.85/ innobase/ #将XtraBackpu移到InnoDB的源码目录#如果使用的是MySQL5.1,目录改为/mysql-5.1.*/ storage/innobase/cd mysql-5.0.85/ innobase #进入源代码目录patch –p2 < . /xtrabackup-0.8-src/fix_innodb_for_backup.patch #给InnoDB源码打上补丁#如果使用的是MySQL5.1,使用fix_innodb_for_backup51.patchcd .. #进入目录mysql-5.0.85./configuremake #我们只需要Make就可以了,不需要Make installcd innobase/xtrabackup-0.8-srcmake #编译XtraBackup;MySQL5.1必须要使用XtraBackup0.9 编译成功后,我们会获得可执行文件xtrabackup、innobackupex。为了方便使用,分别将其拷贝到某个$PATH路径下。(我这里/u01/mysql/bin/是$PATH路径的一部分)cp xtrabackup /u01/mysql/bin/cp innobackupex-1.5.1 /u01/mysql/bin/ 安装中要注意的问题:编译XtraBackup;MySQL5.1必须要使用XtraBackup0.9。另外,使用MySQL5.1编译,需要简单的修改一下XtraBackup的Makefile:#MySQL 5.0#INC= -I. -I.. -I./../include -I./../../include#INNODBOBJS=#MySQL 5.1INC= ……MYSQLOBJS= 安装完成后,我们就可以使用命令innobackupex来备份我们的数据库了。三、 备份XtraBackup使用脚本innobackupx-1.5.1来备份你的数据库。关于innobackupx-1.5.1的详细参数,请参考http://www.percona.com/docs/wiki/percona-xtrabackup:xtrabackup_manual。这里列出比较常用的备份命令:普通备份、打包(Tar)备份、压缩(Tar gzip)备份。需要注意的是,innobackupex-1.5.1会根据你的/etc/my.cnf配置,来确定你的MySQL数据位置(datadir),所以你并不需要告诉innobackupex-1.5.1你的MySQL数据在哪儿。1. 普通备份innobackupex-1.5.1 --user=root --password=123 /u01/backup/1/innobackup/ 2>/u01/backup/1/1.log 备份时间3分38秒;3G的表空间,InnoDB Free 2595840 Kb。这里我们使用mysql的root用户备份,密码为123。备份的目标目录(target dir)是/u01/backup/1/innobackup/,innobackupex-1.5.1将在该目录下生成备份。例如/u01/backup/1/innobackup/2009-09-01_11-59-29就是我执行脚本后生成的备份,所有的备份文件都在该./2009-09-01_11-59-29目录下。这里的2>/u01/backup/1/1.log,是将备份过程中的输出信息重定向到1.log。另外innobackupex-1.5.1还支持增量备份,这里并没有测试使用。那如何恢复呢?为了模拟恢复过程,我先将MySQL停止,并删除MySQL的data目录下所有数据文件。cd mysql/data/ ;rm –rf *;innobackupex-1.5.1 --apply-log /u01/backup/1/innobackup/2009-09-01_11-59-29innobackupex-1.5.1 --apply-log /u01/backup/1/innobackup/2009-09-01_11-59-29innobackupex-1.5.1 --copy-back /u01/backup/1/innobackup/2009-09-01_11-59-29cd /u01/mysql/data/chown -R mysql:dba . #(这时候可能还需要修改datadir修改文件的所有者) 命令innobackupex-1.5.1需要指定具体哪个备份目录,先应用备份log,然后copy back。这里的备份目录是/u01/backup/1/innobackup/2009-09-01_11-59-29。恢复时间约3分钟。值得一提的是,默认innobackupex-1.5.1会将二进制日志信息存放在文件xtrabackup_binlog_info中发(方便做Slave)。innobackupex-1.5.1会根据/et/my.cnf来确定MySQL的数据位置。2. 打包(Tar)备份这里基本和前面的普通备份类似,就不做详细说明了,之列出对应的命令。值得一提的是,恢复解压缩时,必须使用-i参数。innobackupex-1.5.1 --user=root --password=123 --stream=tar /u01/backup/2/ 2>/u01/backup/2.log 1>/u01/backup/2/2.tar 大约2分55秒。这里使用1>做标准输出重定向。恢复:tar –ixvf 2.tar #解压压缩 这里-i参数是必须的。innobackupex-1.5.1 --apply-log /u01/backup/2/innobackupinnobackupex-1.5.1 --copy-back /u01/backup/2/innobackupcd /u01/mysql/data/chown -R mysql:dba . #(这时候可能还需要修改datadir修改文件的所有者)mysqld_safe --user=mysql & 3. 压缩(tar gzip)备份innobackupex-1.5.1 --user=root --password=123 --stream=tar /u01/backup/1/ 2>/u01/backup/2.log | gzip > /u01/backup/1/1.tar.gz 大约3分钟。这里使用了管道|将innobackupex-1.5.1作为gzip的标准输入。它的恢复过程,只需要使用tar –izxvf 解压对应的文件后,操作完全同普通备份。四、 关于XtraBackupXtraBackup还在快速的成长阶段,由http://www.percona.com/维护。这里列出一些相关资源:主页: http://www.percona.com/docs/wiki/percona-xtrabackup:start 
    Google Group: http://groups.google.com/group/percona-discussion?hl=en 
    Launchpad: https://launchpad.net/percona-xtrabackup 
    Manual http://www.percona.com/docs/wiki/percona-xtrabackup:xtrabackup_manual 
    Ningoo.net: 
    http://www.ningoo.net/html/2009/using_xtrabackup_backup_mysql_database.html 参考文献http://www.percona.com/docs/wiki/percona-xtrabackup:start 
    http://www.ningoo.net/html/2009/using_xtrabackup_backup_mysql_database.html 
    http://www.innodb.com/doc/hot_backup/manual.html#innobackup 
    http://www.ibm.com/developerworks/cn/linux/l-diffp/index.html 
    +++++++++++++++++++++++++++++++++ 一、 使用说明本文测试环境同上篇。1. 备份InnoDB配置说明:innodb_data_home_dir = ./
    innodb_data_file_path = ibdata1:50M:autoextend
    innodb_log_group_home_dir = ./
    innodb_log_files_in_group = 4
    innodb_log_file_size = 104857600 备份命令:$xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/u01/xtrabackup/1/
    ……
    $cd /u01/xtrabackup/1/ && ls
    ibdata1 test xtrabackup_checkpoints xtrabackup_logfile 2. 恢复需要执行两次xtrabackup --prepare$xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/u01/xtrabackup/1/
    ……
    $xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/u01/xtrabackup/1/
    ……
    $cd /u01/xtrabackup/1/ && ls
    ibdata1 ib_logfile0 ib_logfile1 ib_logfile2 ib_logfile3 test xtrabackup_checkpoints xtrabackup_logfile 这时候,InnoDB的全部数据文件就已经恢复了。将这些数据文件,拷贝回你的MySQL数据文件的位置就可以了。需要注意的是,xtrabackup只备份数据文件,并不备份数据表结构(.frm),所以使用xtrabackup恢复的时候,你必须有对应表结构文件(.frm)。二、 增量备份对比innobackupex和xtrabackup我们可以看到,innobackupex操作起来更方便,但是innobackupex会有短暂的锁表(时间依赖于MyISAM大小)。xtrabackup备份还有另一个重要特性:增量备份。(未来的版本innobackupex也可能增长该功能)1. 全量备份$xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/u01/xtrabackup/2/
    ……
    $ls /u01/xtrabackup/2/
    ibdata1 test xtrabackup_checkpoints xtrabackup_logfile 2. 增量备份$xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/u01/xtrabackup/2.1/ --incremental-basedir=/u01/xtrabackup/2/
    ……
    $ls /u01/xtrabackup/2.1/
    ibdata1.delta test xtrabackup_checkpoints xtrabackup_logfile 在增量备份的目录下,数据文件都是以.delta结尾的。增量备份只备份上一次全量备份之后被修改过的page,所以增量备份一般只暂用较少的空间。$cd /u01/xtrabackup/ && du --max-depth=1 -h
    428K ./2.1
    935M ./2 3. 增量备份恢复我们需要分别对全量、增量备份各做一次prepare操作。$xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/u01/xtrabackup/2/
    ……
    $xtrabackup --prepare --target-dir=/u01/xtrabackup/2/ --incremental-dir=/u01/xtrabackup/2.1/
    ……
    $xtrabackup --prepare --target-dir=/u01/xtrabackup/2/ #这一步不是必须的 这样,/u01/xtrabackup/2/下的数据文件就可以直接放到你的MySQL数据目录下,恢复数据了。再次提醒,xtrabackup只备份InnoDB数据文件,表结构是不备份的,所以恢复的时候,你必须有对应表结构文件(.frm)。参考文献
    [1]. http://www.percona.com/docs/wiki/percona-xtrabackup:start
      

  3.   

    问下楼主:
    用xtrabackup 好像要在my.cnf指定datadir 的,楼主是不是也这样.
      

  4.   

    测试一个全量 和一个增量是成功的  .  准备应用到 在线系统 
    xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/u01/xtrabackup/2/
    ……
    $xtrabackup --prepare --target-dir=/u01/xtrabackup/2/ --incremental-dir=/u01/xtrabackup/2.1/我准备作如下规划
    每周11次全备. 每周2-7是增量备份
    这种情况下该如何恢复  (周日我做一个完全恢复备份  现在1个全备份文件+6个增量备份文件如何使用命令 ??)
      

  5.   

    http://blog.csdn.net/mr_mablevi/archive/2010/09/03/5860571.aspx看看这个有帮助没
      

  6.   

    太感谢了简介:
    Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。本文测试使用的是1.3版本,Xtrabackup有两个主要的工具:xtrabackup、innobackupex,其中xtrabackup只能备份InnoDB和XtraDB两种数据表,innobackupex则封装了xtrabackup,同时可以备份MyISAM数据表。
     
    环境:
    测试主机:ubuntu-8.04/10.04
    INNODB环境:
    innodb_data_home_dir = /usr/local/mysql/var/
    innodb_data_file_path = ibdata1:100M;ibdata2:100M:autoextend
    innodb_log_group_home_dir = /usr/local/mysql/var/
     
    下载XtraBackup:(2进制包)
    http://www.percona.com/downloads/XtraBackup/XtraBackup-1.3-beta/Linux/binary/i686/
     
    本人在测试1.2的时候增量备份出错,错误为:segmentation fault,故用1.3来测试
     
    下载解压后,进入目录看到4个文件:
    innobackupex-1.5.1  tar4ibd  xtrabackup  xtrabackup_50
    如有需要把这些文件复制到/usr/bin 目录下:
    cp innobackupex-1.5.1 /usr/bin
    cp tar4ibd   /usr/bin
    cp xtrabackup_50 /usr/bin/xtrabackup 
     
    innobackup备份:
    XtraBackup使用脚本innobackupx-1.5.1来备份你的数据库。关于innobackupx-1.5.1的详细参数,请参考http://www.percona.com/docs/wiki/percona-xtrabackup:xtrabackup_manual。这里列出比较常用的备份命令:普通备份、打包(Tar)备份、压缩(Tar gzip)备份。
     
    需要注意的是,innobackupex-1.5.1会根据你的/etc/my.cnf配置,来确定你的MySQL数据位置(datadir),所以你并不需要告诉innobackupex-1.5.1你的MySQL数据在哪儿。(必须要在my.cnf中配置datadir参数)
     
    1,普通备份:
    root@mablevi-desktop:~# innobackupex --user=mablevi --password=123456 /usr/local/innobackup/
    ……
    100901 17:17:26  innobackupex: completed OK!
     
    这里我们使用mysql的mablevi用户备份,密码为123456。备份的目标目录(target dir)是/usr/local/innobackup/,innobackupex-1.5.1将在该目录下生成备份。例如/usr/local/innobackup/2010-09-01_17-16-51就是我执行脚本后生成的备份,所有的备份文件都在该./2010-09-01_17-16-51目录下。
    查看备份文件:
    root@mablevi-desktop:/usr/local/innobackup/2010-09-02_13-59-49# ls
    backup-my.cnf  ibdata2  mysql         mysql-stdout  xtrabackup_binlog_info  xtrabackup_logfile
    ibdata1        mablevi  mysql-stderr  test          xtrabackup_checkpoints要是觉得显示的信息太多,则可以用:
    root@mablevi-desktop:~# innobackupex --user=mablevi --password=123456 /usr/local/innobackup/ 2>/usr/local/innobackup/1.log
    这里的2>/u01/backup/1/1.log,是将备份过程中的输出信息重定向到1.log。
    ------
    还原:
    root@mablevi-desktop:~# innobackupex --user=mablevi --password=123456  --apply-log /usr/local/innobackup/2010-09-01_17-16-51
    #应用日志ibbackup_logfile
    ……
    100901 17:47:09  innobackupex: completed OK!删除数据目录里的所有文件
    rm -rf /usr/local/mysql/var/*root@mablevi-desktop:~# innobackupex --user=mablevi --password=123456  --copy-back /usr/local/innobackup/2010-09-01_17-16-51
    ……
    100901 17:53:11  innobackupex: completed OK!cd /usr/local/mysql/
    chown -R mysql var/
    修改数据库目录的权限.
    重启mysql服务
    innobackupex-会根据/etc/my.cnf来确定MySQL的数据位置。------------------------------------------------------
    2,打包(Tar)备份
    这里基本和前面的普通备份类似,就不做详细说明了,之列出对应的命令。值得一提的是,恢复解压缩时,必须使用-i参数。
    root@mablevi-desktop:~# innobackupex --user=mablevi --password=123456 --stream=tar /usr/local/innobackup/2/ 1>/usr/local/innobackup/2/2.tar
    .....
    或则
    root@mablevi-desktop:~# innobackupex --user=mablevi --password=123456 --stream=tar /usr/local/innobackup/3/ 2>/usr/local/innobackup/2.log 1>/usr/local/innobackup/3/3.tar
    这里使用1>做标准输出重定向
    ---------
    还原:
    cd /usr/local/innobackup/2/
    tar ixvf 2.tar
    root@mablevi-desktop:/usr/local/innobackup/2# ls
    2.tar  backup-my.cnf  ibdata1  ibdata2  mablevi  mysql  xtrabackup_binlog_info  xtrabackup_checkpoints  xtrabackup_logfile
    准备还原
    root@mablevi-desktop:~# innobackupex --user=mablevi --password=123456 --apply-log /usr/local/innobackup/2/
    ......
    innobackupex: completed OK!删除数据目录里的所有文件
    rm -rf /usr/local/mysql/var/*root@mablevi-desktop:~# innobackupex --user=mablevi --password=123456 --copy-back /usr/local/innobackup/2/
    ......
    innobackupex: completed OK!cd /usr/local/mysql/
    chown -R mysql var/
    修改数据库目录的权限.
    重启mysql服务-----------------------------------------------------
    3,压缩(tar gzip)备份
    root@mablevi-desktop:~# innobackupex --user=mablevi --password=123456 --stream=tar /usr/local/innobackup/1/ |gzip > /usr/local/innobackup/1/1.tar.gz
    ....
    100902 15:20:32  innobackupex: completed OK!
    或则
    root@mablevi-desktop:~# innobackupex --user=mablevi --password=123456 --stream=tar /usr/local/innobackup/1/ 2>/usr/local/innobackup/1.log |gzip > /usr/local/innobackup/1/1.tar.gz
    ------
    还原:
    要使用tar –izxvf 解压对应的文件后,操作完全同普通备份。
    cd /usr/local/innobackup/1/
    tar ixvf 1.tar
    cd /usr/local/innobackup/2/
    tar izxvf 2.tar
    root@mablevi-desktop:/usr/local/innobackup/1# ls
    backup-my.cnf  ibdata1  ibdata2  mablevi  mysql  xtrabackup_binlog_info  xtrabackup_checkpoints  xtrabackup_logfile
    准备还原:
    root@mablevi-desktop:~# innobackupex --user=mablevi --password=123456 --apply-log /usr/local/innobackup/1/
    ......
    innobackupex: completed OK!删除数据目录里的所有文件
    rm -rf /usr/local/mysql/var/*root@mablevi-desktop:/usr/local/mysql/var# innobackupex --user=mablevi --password=123456 --copy-back /usr/local/innobackup/1/cd /usr/local/mysql/
    chown -R mysql var/
    修改数据库目录的权限.
    重启mysql服务=============================================================================================================================
    =============================================================================================================================
    =============================================================================================================================上面介绍了如何使用innobackupex来备份和恢复数据库。这里将继续介绍Xtrabackup中的另一个工具xtrabackup(二进制脚本)。innobackupex对xtrabackup进行了封装可以同时备份InnoDB和MyISAM数据表,在备份MyISAM表时会进行全局锁表,如果单独使用xtrabackup,我们不仅可以实现真正的“在线”备份,还可以进行增量备份InnoDB。
    本文将介绍如何单独使用xtrabackup来备份你的InnoDB数据。
    http://www.orczhou.com/index.php/2009/10/xtrabackup-2/
    1,xtrabackup备份
    注意:必须要在my.cnf中配置datadir参数
    比如表中目前有10条数据,先备份.备份到/usr/local/backup/1/目录 (完整备份)
    root@mablevi-desktop:~# xtrabackup --defaults-file=/etc/my.cnf --backup --target=/usr/local/backup/1/
    ----------------------
    2,恢复
    删除表中的数据,还原:
    需要执行两次xtrabackup --prepare
    xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/usr/local/backup/1/
    xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/usr/local/backup/1/
    cd /usr/local/backup/1/
    cp 1/ib* /usr/local/mysql/var/
    /etc/init.d/mysql restart
    数据已恢复
    ----------------------------------------------------------------------------------------------------------------------------
    3,增量备份
    对比innobackupex和xtrabackup我们可以看到,innobackupex操作起来更方便,但是innobackupex会有短暂的锁表(时间依赖于MyISAM大小)。xtrabackup备份还有另一个重要特性:增量备份。(未来的版本innobackupex也可能增长该功能)比如表中目前有10条数据,先备份.备份到/usr/local/backup/1/目录 (完整备份)
    root@mablevi-desktop:~# xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/usr/local/backup/1/
    查看它的lsn点:
    root@mablevi-desktop:/usr/local/backup/1# cat xtrabackup_checkpoints 
    backup_type = full-backuped
    from_lsn = 0:0
    to_lsn = 0:592411
    再向表中插入数据,增量备份
    root@mablevi-desktop:~# xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/usr/local/backup/2/ --incremental-basedir=/usr/local/backup/1/
    把增量备份到2(1到2的增量备份)
    查看它的lsn点:
    root@mablevi-desktop:/usr/local/backup/2# cat xtrabackup_checkpoints 
    backup_type = incremental
    from_lsn = 0:592411
    to_lsn = 0:908563
    再向表中插入数据,增量备份
    root@mablevi-desktop:~# xtrabackup --defauls-file=/etc/my.cnf --backup --target-dir=/usr/local/backup/3/ --incremental-basedir=/usr/local/backup/1/
    把增量备份到3(1到3的增量备份,2的备份已经包含在里面了,按照这种方式备份的话,最后的还原只需要还原完全备份和最后一份增量备份即可)
    查看它的lsn点:
    root@mablevi-desktop:/usr/local/backup/3# cat xtrabackup_checkpoints 
    backup_type = incremental
    from_lsn = 0:592411
    to_lsn = 0:1507854或则另一种增量备份方式:root@mablevi-desktop:~# xtrabackup --defauls-file=/etc/my.cnf --backup --target-dir=/usr/local/backup/3/ --incremental-basedir=/usr/local/backup/2/
    把增量备份到3(2到3的增量备份,各个增量备份独立,按照这种方式备份的话,最后的还原需要还原完全备份和各个增量备份)
    查看它的lsn点:
    root@mablevi-desktop:/usr/local/backup/4# cat xtrabackup_checkpoints 
    backup_type = incremental
    from_lsn = 0:908563
    to_lsn = 0:1507854------------
    4,增量备份恢复
    我们需要分别对全量、增量备份各做一次prepare操作。①:基于(1到3的增量备份,2的备份已经包含在里面了,按照这种方式备份的话,最后的还原只需要还原完全备份和最后一份增量备份即可)
    把第1次的完备恢复
    xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/usr/local/backup/1/
    继续把增量备份恢复上去
    /usr/local# xtrabackup --prepare --target-dir=/usr/local/backup/1/ --incremental-dir=/usr/local/backup/3/
    恢复完成 
    接着
    cd /usr/local/backup/1/
    cp 1/ib* /usr/local/mysql/var/
    /etc/init.d/mysql restart②基于(2到3的增量备份,各个增量备份独立,按照这种方式备份的话,最后的还原需要还原完全备份和各个增量备份)
    把第1次的完备恢复
    xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/usr/local/backup/1/
    继续把增量备份恢复上去
    /usr/local# xtrabackup --prepare --target-dir=/usr/local/backup/1/ --incremental-dir=/usr/local/backup/2/
    继续把增量备份恢复上去
    /usr/local# xtrabackup --prepare --target-dir=/usr/local/backup/1/ --incremental-dir=/usr/local/backup/3/
    恢复完成 
    接着
    cd /usr/local/backup/1/
    cp 1/ib* /usr/local/mysql/var/
    /etc/init.d/mysql restart本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mr_mablevi/archive/2010/09/03/5860571.aspx
      

  7.   

    奇怪  csdn 的高级搜索现在不能用了? (不能按照版面  和 用户id  关键词 日期等组合高级查询?)