在使用xtrabackup备份MySQL的时候,可以用stream参数指定输出流的格式,目前只能选择tar方式。使用这个tar4ibd程序进行打包。这个程序包含在xtrabackup的源码中,需要单独安装,如果没有安装,指定stream=tar参数会报以下错误:

innobackupex: Starting to backup InnoDB tables and indexes
innobackupex: from original InnoDB data directory '/home/mysql/3306/data'
innobackupex: Backing up as tar stream 'ibdata1'
sh: tar4ibd: command not found
innobackupex: tar returned with exit code 127.
innobackupex: Error: Failed to stream '/home/mysql/3306/data/ibdata1':  at xtrabackup-1.6/innobackupex line 336.

innobackupex: Starting to backup InnoDB tables and indexes

innobackupex: from original InnoDB data directory '/home/mysql/3306/data'

innobackupex: Backing up as tar stream 'ibdata1'

sh: tar4ibd: command not found

innobackupex: tar returned with exit code 127.

innobackupex: Error: Failed to stream '/home/mysql/3306/data/ibdata1':  at xtrabackup-1.6/innobackupex line 336.

到xtrabackup-1.6的源码目录下有个libtar-1.2.11文件目录,安装即可:

[root@web-04 xtrabackup-1.6]# cd libtar-1.2.11

./configure

make

make install

然后就可以备份MySQL了:

xtrabackup-1.6/innobackupex --stream=tar --socket=/home/mysql/3306/mysql.sock --defaults-file=/home/mysql/3306/my.cnf --user=root --password=banping --slave-info /home/mysql/backup/data/3306 1>/home/mysql/backup/data/3306/mysql20110518.tar 2>/home/mysql/backup/data/3306/tar.log

也可以在备份的时候进行压缩:

xtrabackup-1.6/innobackupex --stream=tar --socket=/home/mysql/3306/mysql.sock --defaults-file=/home/mysql/3306/my.cnf --user=root --password=banping --slave-info /home/mysql/backup/data/3306 2>/home/mysql/backup/data/3306/tar.gz.log | gzip >/home/mysql/backup/data/3306/mysql20110518.tar.gz

需要注意的是,在解包备份文件的时候必须使用-i参数。

 

2 Responses to 使用xtrabackup的stream方式备份MySQL

  1. Yousri 说道:

    记得这个tar4ibd有现成的二进制文件 可以直接使用的

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>