ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 创建MySQL数据库备份的好工具:XtraBackup

创建MySQL数据库备份的好工具:XtraBackup

原创 Linux操作系统 作者:junsansi 时间:2011-06-14 15:09:17 0 删除 编辑

  说到备份MySQL数据库,不少人可能会先想到其自带的命令行工具mysqldump,要说这个工具确实不错,操作简单调用灵活,不过mysqldump属于逻辑备份工具,类似ORACLE数据库中的export,小数据量时效率尚可,当数据量达到一定规模时,使用mysqldump执行备份的时间也许还可接受,但恢复时间基本就不能忍受了。

  这种情况下就需要一种好用又高效的工具,xtrabackup就是其中一款,号称免费版的InnoDB HotBackup。

Xtrabackup提供了两种命令行工具:

  • xtrabackup:专用于备份InnoDB引擎的数据;
  • innobackupex:这是一个perl脚本,在执行过程中会调用xtrabackup命令,这样用该命令即可以实现备份InnoDB,也可以备份MyISAM引擎的对象。

  目前xtrabackup最新版本已经升级到了1.6版本,可以到http://www.percona.com/downloads/xtrabackup/免费下载。

  Xtrabackup提供了Linux下常见的安装方式,包括RPM安装,源码编译方式,以及二进制版本安装,这里三思尝试下载了最新的1.6源码包,决定自行编译安装。

  1.6版本的源码包相较之前大了数十倍,主要是由于源码包中同时包含了mysql5.1和mysql5.5的源码包,一个2M左右的小软件,居然内置了两个各有20余M的软件安装包,这真不是一般人都想的出来的。

  由于1.6版本新推不久,官网中的文档都没有来的及更新完善,源码方式的安装文档也并不完整,三思也只能连蒙带猜,下列安装步骤有可能并非最佳安装方式,仅只是提供了一种,源码安装xtrabackup并使其可用的方式。

  由于xtrabackup依赖libinnodb链接库,因此需要先编译InnoDB,而后再编译xtrabackup。要编译安装xtrabackup最简单的方式当然是使用提供的编译脚本,首先还是解压缩文件,并进入到安装目录:

    [root@rhel5u3 software]# tar xvfz xtrabackup-1.6.tar.gz

    [root@rhel5u3 software]# cd xtrabackup-1.6

  ll的话会看到目录有两mysql-5.1.56.tar.gz和mysql-5.5.10.tar.gz两个mysql源码包,正是这两个源码包占用了大量的空间。除此外还有一个innobackupex的perl脚本程序,该脚本可以直接执行,不过执行备份任何时会报:

    sh: xtrabackup_55: command not found

    innobackupex: fatal error: no 'mysqld' group in MySQL options

    innobackupex: fatal error: OR no 'datadir' option in group 'mysqld' in MySQL options

  提示xtrabackup_55命令不存在,接下来就是要编译xtrabackup。

  在解压缩目录下执行utils/build.sh,注意一定要在xtrabackup安装目录内执行,执行时要指定与之匹配的MySQL数据库版本。

    [root@rhel5u3 xtrabackup-1.6]# utils/build.sh 

    Build an xtrabackup binary against the specified InnoDB flavor.

    Usage: build.sh CODEBASE

    where CODEBASE can be one of the following values or aliases:

      innodb51_builtin | 5.1        build against built-in InnoDB in MySQL 5.1

      innodb55         | 5.5        build against InnoDB in MySQL 5.5

      xtradb51         | xtradb   build against Percona Server with XtraDB 5.1

      xtradb55         | xtradb55 build against Percona Server with XtraDB 5.5

  三思安装的是mysql5.5,因此这里指定innodb55,执行命令如下:

    [root@rhel5u3 xtrabackup-1.6]# utils/build.sh innodb55 

  该脚本会根据指定的引擎版本,自动解压缩适当的MySQL源码包并进行编译,这是最简单的安装方式。

  命令执行完成之后,xtrabackup就可以用了,一般默认编译后该文件保存在xtrabackup-1.6/mysql-5.5.10/storage/innobase/xtrabackup/目录下,当然也可以通过find命令查找xtrabackup的具体路径。

  创建两个软链接,以方便调用XtraBackup命令执行备份:

    [root@rhel5u3 xtrabackup-1.6]# ln -s /data/software/xtrabackup-1.6/innobackupex /usr/local/mysql55/bin/innobackupex

    [root@rhel5u3 xtrabackup-1.6]# ln -s /data/software/xtrabackup-1.6/mysql-5.5.10/storage/innobase/xtrabackup/xtrabackup_innodb55 /usr/local/mysql55/bin/xtrabackup_55

  将mysql55的bin加载到path环境变量,当然这步多数情况下应该在安装mysql时做过了:

    [root@rhel5u3 xtrabackup-1.6]# export PATH=$PATH:/usr/local/mysql55/bin

  至此,XtraBackup的源码安装就完成了,接下来就可以使用这些命令执行备份任务了。例如,调用xtrabackup命令执行备份,举个简单的备份示例如下:

    [root@rhel5u3 ~]# xtrabackup_55 --defaults-file=/data/mysqldata/3306/my.cnf --backup --target-dir=/data/mysql_20110524

    xtrabackup_55  Ver undefined Rev undefined for 5.5.10 Linux (x86_64)

    xtrabackup: uses posix_fadvise().

    xtrabackup: cd to /data/mysqldata/3306/data

    xtrabackup: Target instance is assumed as followings.

    xtrabackup:   innodb_data_home_dir = /data/mysqldata/3306/innodb_ts

    xtrabackup:   innodb_data_file_path = ibdata1:10M:autoextend

    xtrabackup:   innodb_log_group_home_dir = /data/mysqldata/3306/innodb_log

    xtrabackup:   innodb_log_files_in_group = 2

    xtrabackup:   innodb_log_file_size = 5242880

    110524 17:31:16 InnoDB: Using Linux native AIO

    >> log scanned up to (1598402)

    [01] Copying /data/mysqldata/3306/innodb_ts/ibdata1 

         to /data/mysql_20110524/ibdata1

    [01]        ...done

    xtrabackup: The latest check point (for incremental): '1598402'

    >> log scanned up to (1598402)

    xtrabackup: Stopping log copying thread.

    xtrabackup: Transaction log of lsn (1598402) to (1598402) was copied.

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

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-21

  • 博文量
    640
  • 访问量
    4136959