1、安装
我使用的是二进制1.6版本,解压以后就可以直接使用
tar -zxvf xtrabackup-1.6.tar.gz -C /usr/local/xtrabackup/
ln -s /usr/local/xtrabackup/tar4ibd /usr/bin/tar4ibd
ln -s /usr/local/xtrabackup/xtrabackup /usr/bin/xtrabackup
ln -s /usr/local/xtrabackup/xtrabackup_51 /usr/bin/xtrabackup_51
ln -s /usr/local/xtrabackup/xtrabackup_55 /usr/bin/xtrabackup_55
ln -s /usr/local/xtrabackup/bin/innobackupex /usr/bin/innobackupex
2、备份
innobackupex --user=root --password=123456 --defaults-file=/etc/my_bak.cnf --apply-log /usr/local/innobackup > /usr/local/innobackup/innobackup_apply.log 2>&1
在my_bak.cnf指定要指定datadir路径(datadir=/usr/local/mysql/var)
如果要备份单独某个数据库加参数--databases,如果不加参数代表备份所有数据库
innobackupex --help可以参看使用方法3、还原
在还原之前将还原服务器上var数据文件夹下面所有的文件都删除
innobackupex --apply-log /root/2011-11-30_03-54-46/ --apply-log表示在恢复过程中需要重启 mysql服务
innobackupex --copy-back /root/2011-11-30_03-54-46/ --copy-back 表示将备份文件cp到 my.cnf定义的数据目录中
参考下面的文章,了解innobackupex的一些参数选项
注意:
1、注意备份和还原服务器软件的版本
我有次用1.5版本来还原1.6版本备份的数据,报
sh: /usr/bin/xtrabackup: cannot execute binary file
innobackupex-1.5.1: fatal error: no 'mysqld' group in MySQL options
innobackupex-1.5.1: fatal error: OR no 'datadir' option in group 'mysqld' in MySQL options
错误,始终找不出问题在哪里,后来用1.6版还原,问题解决。所以建议还原所使用的版本一定不能低于备份所使用的版本,这也就是为什么高版本支持低版本,但低版本不能预见高版本的原因。
还原的mysql服务器的my.cnf最好配置成备份mysql服务器的my.cnf。如果备份服务器的my.cnf对innodb_buffer_pool_size进行了设置,但是还原服务器是默认值,两者不匹配,就有可能造成还原不成功,报如下错误
111201 10:25:59 InnoDB: Initializing buffer pool, size = 100.0M
111201 10:25:59 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 268435456 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
xtrabackup: innodb_init(): Error occured.
innobackupex: Error:
innobackupex: ibbackup failed at /usr/bin/innobackupex line 336.
3、注意还原服务器的空闲空间