使用低版本的Xtrabackup还原较高版本的Xtrabackup创建的全备份文件存在的问题

最近要将使用xtrabackup备份的多台MySQL Server的数据还原到另外一台MySQL服务器上并使用不同的端口启动多个实例来作为review环境。实用程序执行自动还原的过程中有几个数据库实例启动失败。检查数据目录中的错误日志,发现如下启动错误:

2015-02-02 12:31:36 27876 [Note] Plugin 'FEDERATED' is disabled.
2015-02-02 12:31:36 27876 [Note] InnoDB: The InnoDB memory heap is disabled
2015-02-02 12:31:36 27876 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2015-02-02 12:31:36 27876 [Note] InnoDB: Compressed tables use zlib 1.2.3
2015-02-02 12:31:36 27876 [Note] InnoDB: Using CPU crc32 instructions
2015-02-02 12:31:36 27876 [Note] InnoDB: Initializing buffer pool, size = 500.0M
2015-02-02 12:31:36 27876 [Note] InnoDB: Completed initialization of buffer pool
2015-02-02 12:31:36 27876 [Note] InnoDB: Highest supported file format is Barracuda.
2015-02-02 12:31:36 27876 [Note] InnoDB: The log sequence numbers 13637542590703 and 13637542590703 in ibdata files do not match the log sequence number 13637542595176 in the ib_logfiles!
2015-02-02 12:31:36 27876 [Note] InnoDB: Database was not shutdown normally!
2015-02-02 12:31:36 27876 [Note] InnoDB: Starting crash recovery.
2015-02-02 12:31:36 27876 [Note] InnoDB: Reading tablespace information from the .ibd files...
2015-02-02 12:31:37 27876 [Note] InnoDB: Restoring possible half-written data pages
2015-02-02 12:31:37 27876 [Note] InnoDB: from the doublewrite buffer...
2015-02-02 12:31:37 2aeb2d96a590 InnoDB: Error: page 7 log sequence number 36755345241838
InnoDB: is in the future! Current system log sequence number 13637542595176.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: for more information.
2015-02-02 12:31:37 2aeb2d96a590 InnoDB: Error: page 1 log sequence number 35468208055287
InnoDB: is in the future! Current system log sequence number 13637542595176.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: for more information.
……

是说ibdata文件中的日志序列号与ib_logfiles文件中的日志序列号不一致,启动崩溃恢复过程,从.ibd文件读表空间信息,从双写缓冲恢复数据页。但发现页中的日志序列号超前于当前系统日志序列号。提示数据库可能损毁。或者备份时只备了表空间没备日志文件。因此,推测错误可能发生在两个环节:一备份文件本身损坏了;二备份文件本身没有问题,在应用日志的时候出现了问题。

先从简单的情况验证

手动拉取前一天的xtrabackup全备文件一步步执行还原过程,在应用日志阶段。发现如下报错:

……
150202 12:36:35  innobackupex: Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_file=/etc/my.cnf;mysql_read_default_group=xtrabackup' as 'usvr_serveradmin'  (using password: YES).
150202 12:36:35  innobackupex: Connected to MySQL server
Connected successfully
Can't call method "disconnect" on an undefined value at /usr/bin/innobackupex line 1482.
……

正常情况下当输出complete ok!所以断定是这里出问题了。所有机器都是使用同样的还原程序进行还原的,为什么只有某几台发生这样的问题?经查看,这些机器是安装的MySQL版本为5.6.21,xtrabackup版本为2.2.24。而最终要还原到的MySQL Server实例本身是5.6.12的,xtrabackup版本为2.1.3。

使用xtrabackup2.2.24替换2.1.3后重新对全备文件应用日志,发现可以成功执行。所以最终问题定位到了这里。也即,使用高版本的xtrabackup备份的全备文件,在使用低版本的xtrabackup应用日志时会出问题。(与MySQL Server本身的版本木有必然联系)

但接下来问题又来了,其余的一些机器中也存在少数几台MySQL5.6.21的,xtrabackup版本为2.2.24的。为什么还原成功??观察这几台机器的数据库,发现数据库均为空,这样也就不存在对全备应用日志的情况。因而全备还原会成功。

综上:使用高版本的xtrabackup备的全备在使用低版本的xtrabackup应用日志时存在问题,这一点需注意。

时间: 2024-10-08 15:43:40

使用低版本的Xtrabackup还原较高版本的Xtrabackup创建的全备份文件存在的问题的相关文章

怎么使用CAD版本转换器,如何将高版本CAD转低版本?

怎么使用CAD版本转换器,如何将高版本CAD转低版本?在CAD行业中,每天都会接触到CAD图纸,而且在查看CAD图纸的过程中肯定会遇到许多的问题,那就是有的时候在查看dwg格式的CAD图纸的时候,不管怎么样都打不开,小编后来才知道是CAD文件的版本太高的缘故,不知道小伙伴们有没有遇到过这样的情况,那这样我们要怎么使用CAD版本转换器,又如何将高版本的CAD转低版本呢?具体要怎么来进行操作?那下面小编就来教教大家具体操作方法. 第一步:首先,打开电脑,在电脑桌面上任意的打开一个浏览器,在浏览器的搜

怎么将低版本的CAD转换成高版本

怎么将低版本的CAD转换成高版本?就是在我们日常的工作中,每天最常见的就是CAD格式的图纸,但是有的时候在网上查找的CAD图纸,在进行打开的时候发现打不开,那就是因为CAD文件的版本太低,导致在较高的CAD编辑器中打不开,这个时候我们就需要将CAD版本精装转换,那怎么将低版本的CAD转换成高版本,具体要怎么来进行操作了,下面小编就是用迅捷CAD转换来教大家具体的操作步骤,有兴趣的朋友可以来看一下. 第一步:首先打开自己常用的电脑,如果电脑桌面中没有CAD转换器的,可以在电脑桌面中任意的打开一个浏

[Sqlite]-->数据迁移备份--从低版本3.6.2到高版本3.8.6

数据迁移 一, 使用.dump命令 命令帮助提示 .dump ?TABLE? ...      Dump the database in an SQL text format If TABLE specified, only dump tables matching LIKE pattern TABLE. 理解分析:       使用.dump命令可以将数据库对象导出成SQL格式.不带任何参数时,.dump将整个数据库导出为数据库定义语言(DDL)和数据库操作语言(DML)命令,适合重新创建数据

让44.1版本的sketch打开更高版本的sketch文件

我们都知道,sketch的有效license与版本挂钩.最近设计师又更新了sketch版本,导致她生成的源文件我都无法打开. 毕竟我不是使用sketch进行UI设计,仅用它来查看设计稿参数,再花99美刀实在很不划算.而sketch导出html的方式体验非常不好,因此我只好退而求其次,让我旧版本的sketch能够打开新版本的sketch源文件就好. 分析 经过一番资料查阅,我发现:sketch文件实际上是一个使用zip打包的文件包.这个文件包里面有定义生成该文件的sketch版本以及能够打开该文件

(转)在低版本的SDK里使用高版本函数@SuppressLint("NewApi") or @TargetApi?

@SuppressLint 和 @TargetApi达到的效果是一样的,相对于SuppressLint ,TargetApi会根据函数里使用的API,严格匹配SDK版本,给出编译错误,但是SuppressLint 则忽略了SDK版本. 例如: [java] view plaincopy @TargetApi(Build.VERSION_CODES.FROYO) public static File getExternalCacheDir(Context context) { File dir;

若要使用 Project Web Access,需要 Internet Explorer 版本 5.0 或更高版本。

使用360安全浏览器 在设置  选择高级设置  内核切换设置 添加IP  内核选择IE8 原文地址:https://www.cnblogs.com/eastward/p/11737237.html

高版本->低版本迁移,低版本客户端连接高版本数据库EXP导出报错EXP-00008,ORA-01455,EXP-00000

生产环境: 源数据库:RHEL + Oracle 11.2.0.3 目标数据库:HP-UX + Oracle 10.2.0.4 需求:迁移部分表  11.2.0.3-->10.2.0.4,若迁移范围内的有些表在目标库已经存在,则替换. 本次迁移数据量<1G. 初定方案:低版本的客户端连接到高版本数据库,用低版本导出,低版本导入. 1.采用初定方案,目标数据库所在服务器连接到源数据库,exp导出过程中报错. ZJCRNOPDB 36: sqlplus -version SQL*Plus: Rel

Sql Server本地高版本备份数据备份至远程低版本数据库方法

想要将Sqlserver高版本备份的数据还原到低版本SqlServer2008R2上去,但是这在SqlServer中是没法直接还原数据库的,通过以下方法可以顺利还原. 通过高版本生成sql脚本在低版本执行,并且数据也能保留. 步骤:任务->生成脚本-> 下一步->高级,选择数据库版本和编写脚本数据类型为架构和数据,可以保留数据. 继续下一步完成. 最后在低版本的sql数据库中: 先新建脚本中的数据库,再实行sql生成表结构和数据. 完美还原成功!

[杂] 将高版本iTunes备份恢复到低版本iOS设备中

除非开发测试用设备,自用设备不要随便升iOS beta,不要随便升iOS beta,不要随便升iOS beta. 对于升级了高版本iOS的用户,默认情况下重刷低版本iOS时,iTunes不允许向低版本还原,此时可以通过修改iTunes备份下的plist来实现. iTunes 备份文件夹,对应设备备份中的Info.plist,打开,查找到Product Version字段,将版本更改为需要刷入的版本,如9.0.2,保存,即可. P.S. 不建议跨版本更改,即从9.1改为9.0 √ ,但是9.1改为