应用场景:innobackupex备份的MySQL是5.5版本。innobackupex恢复的MySQL是5.6版本。

在mysql5.5服务器做备份:

innobackupex --defaults-file=/etc/my.cnf --host=localhost --user=root --password='123' --stream=tar /home/bak |gzip > /home/bak/cbs_songlisha.tar.gz
tar ixvf cbs_songlisha.tar.gz

解压后的文件如下图所示:

wKioL1kemzmRwVFoAAF08iuS_3g141.png-wh_50

在mysql5.6服务器做日志恢复:

innobackupex --apply-log /data/backup/ --ibbackup xtrabackup_56

恢复报错:

InnoDB: Last MySQL binlog file position 0 57368934, file name /home/admin/mysql_data/binlog/mysql-bin.010879

innobackupex: Error:

innobackupex: ibbackup failed at /usr/bin/innobackupex line 2560.

wKiom1kem4jRkFrtAACGHrFsP8I912.png-wh_50

并且xtrabackup_logfile也不见了,应用到ib_logfile了。


错误原因:

因为备份机器的MySQL版本是5.5用的是xtrabackup_55

恢复机器MySQL版本我升级到5.6了,我使用了xtrabackup_56做恢复

我现在使用xtrabackup_55做日志恢复试试吧!

cp /data/percona-xtrabackup-2.1.9-Linux-x86_64/bin/xtrabackup_55 /usr/bin/xtrabackup_55
innobackupex --apply-log /data/backup/ --ibbackup xtrabackup_55

恢复成功!!!

wKiom1kenI_BWWDYAAVPhN93olY223.png-wh_50

恢复成功后的文件如下图:

wKioL1kenOPQPWu_AAHtstPw4D8153.png-wh_50

不但xtrabackup_logfile还在,还多出来一个xtrabackup_binlog_pos_innodb文件。

下面做恢复数据操作:

innobackupex  --defaults-file=/etc/my.cnf --user=root --password=root --socket=/data/mysql_data/sock/my3306.sock --copy-back /data/backup/ --ibbackup xtrabackup_55