DBA应用技巧:如何升级InnoDB Plugin

本文中,我们将向读者详细介绍如何升级动态InnoDB Plugin和升级静态编译的InnoDB Plugin,以及如何转换由1.0.2以前版本创建的压缩表。

一、概述

得益于MySQL的插件式存储引擎体系结构,InnoDB Plugin的升级变得非常简单,只需关闭MySQL,替换与平台有关的可执行文件,然后重启服务器即可。如果您希望升级并使用现有的数据库,那么必须关闭MySQL,否则的话,新的插件在合并缓存的插入数据或者清空已删记录的时候就会出错。如果您的数据库中没有任何压缩表,在慢关机后,使用最新的InnoDB Plugin处理起数据库来就不会遇到问题了。

然而,如果您的数据库中含有压缩表的话,则不适合使用InnoDB Plugin 1.0.8。因为1.0.2版本的InnoDB Plugin引入了一个不兼容的特性,所以一些压缩表可能需要重建,具体转换步骤见后文。

当然,我们可以使用mysqldump或其他的方法来重建我们的数据库。如果我们的数据库较小,或者各个表之间存在许多引用约束的话,那么这是一种较好的方法。

需要注意的是,如果使用InnoDB Plugin 1.0.8访问您的数据库的话,就不要再试图用1.0.2之前的插件来访问它们了。

二、升级动态InnoDB Plugin

在关闭包含InnoDB Plugin的MySQL服务器之前,我们必须启用慢关闭功能,设置如下所示:

  1. SET GLOBAL innodb_fast_shutdown=0; 

在MySQL服务器在其中寻找插件的目录内,将旧InnoDB Plugin (ha_innodb_plugin.so或ha_innodb_plugin.dll)的可执行文件重新命名,以便在需要的时候可以恢复它们。过后,我们也可以删除这些文件。插件所在的目录是由系统变量plugin_dir指定的。默认的位置通常是在basedir指定的目录的lib/plugin子目录中。

首先,我们需要根据自己的服务器平台、操作系统和MySQL版本来下载合适的程序包。然后利用相应的工具进行解压缩,在Linux和Unix系统下通常使用tar,在Windows系统中通常使用WinZip等工具软件。将文件ha_innodb_plugin.so或ha_innodb_plugin.dll复制至MySQL服务器在其中寻找插件的目录下。

启动MySQL服务器。如果需要的话,可以按照后文介绍的方法来转换压缩表。

三、升级静态编译的InnoDB Plugin

就像动态安装InnoDB Plugin一样,我们需要慢关闭MySQL服务器。如果您的MySQL是从源代码编译过来并用源代码树中的InnoDB Plugin替换了MySQL内建的InnoDB的话,那么实际上您就会得到一个特殊版本的包含InnoDB Plugin的mysqld可执行文件。

如果您想升级到一个动态链接的InnoDB Plugin,则需要先卸载静态编译的InnoDB Plugin,然后再安装作为共享库发行的预编译InnoDB Plugin。

如果您想从一个静态编译的InnoDB Plugin版本升级到另一个静态编译的InnoDB Plugin版本的话,则必须先重新构建一个mysqld可执行文件,关闭服务器,然后替换mysqld可执行文件,再启动服务器。

不管怎样,如果数据库含有压缩表的话,务必按照后文介绍的方法转换压缩表。

四、转换由1.0.2以前版本创建的压缩表

InnoDB Plugin的1.0.2版本引入了一个不兼容的压缩表格式。这意味着,InnoDB Plugin早期版本创建的一些压缩表,必须使用更大的KEY_BLOCK_SIZE重新构建之后才能够继续使用。

升级到InnoDB Plugin 1.0.2或更高版本的时候,如果必须保持现有的数据库的话,则需要慢关闭正在运行早先版本InnoDB Plugin的MySQL。之后,确定出哪些压缩表需要转换,继而使用新版本的InnoDB Plugin升级这些表。具体操作如下所示。

下面介绍如何处理由1.0.0版本或1.0.1版本的InnoDB Plugin所创建的压缩表。由于新版本中引入了一个不兼容的特性,所以新InnoDB Plugin从压缩表清除已删记录或者合并缓冲的插入记录时,会遇到问题。然而,也不是所有的压缩表都需要重新构建。这里我们将为读者介绍如何识别和处理这些需要重建的压缩表。

如果现有的数据库包含有之前版本InnoDB Plugin所创建的表的话,必须使用慢关闭使用旧的InnoDB Plugin的MySQL服务器。即,在关闭InnoDB Plugin旧实例之前,需要设置SET GLOBAL innodb_fast_shutdown=0。

在启动升级了InnoDB Plugin的MySQL服务器之后,必须检查压缩表是否已经转换。首先,启用InnoDB的strict模式进行更为细致的错误检查:SET SESSION innodb_strict_mode = 1。然后,为每一个压缩表生成一个对应的新表。我们可以通过以下步骤完成:

1. 列出压缩表:

  1. SELECT table_schema, table_name  
  2. FROM information_schema.tables  
  3. WHERE engine=’innodb’ AND row_format=’COMPRESSED’; 

2. 对于每个表,显示其表的定义:SHOW CREATE TABLE table_schema.table_name\G

3. 使用不同的表名执行CREATE TABLE语句。

4. 如果表创建成功,删除新建的表,继续处理下一个压缩表。

5. 如果表创建失败,则尝试用更大的KEY_BLOCK_SIZE,直到成功为止。然后删除新创的表,使用刚才成功执行CREATE TABLE的KEY_BLOCK_SIZE对原始表执行ALTER TABLE。

如果某些特殊的表不允许增加KEY_BLOCK_SIZE,则可以用较短的列索引长度来重建表。这是因为用于索引的列前缀会占用B树结点中的大量空间。较短的前缀减少了索引的精选,但是索引记录会更短,以便它们适于页面大小。较短的前缀还意味着更多的索引项适于B树结点,从而提高了效率。

如果各个表之间存在引用约束的话,上述过程将会更加复杂,所以更好的选择是联合使用旧的InnoDB Plugin和mysqldump,然后用InnoDB Plugin 1.0.2把数据载入新的数据库中。

五、小结

本文中,我们向读者详细介绍了如何升级动态InnoDB Plugin和升级静态编译的InnoDB Plugin,以及如何转换由1.0.2以前版本创建的压缩表。

【编辑推荐】

  1. MySQL数据库集群进行正确配置步骤
  2. 十个节省时间的MySQL命令
  3. DBA必备:MySQL数据库常用操作和技巧
  4. MySQL日志操作教程:DBA们管理的利器
  5. MySQL触发器如何正确使用

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/231005.html<

(0)
管理的头像管理
上一篇2025-04-19 12:12
下一篇 2025-04-19 12:13

相关推荐

  • GEO友好的服务器标准有哪些,如何判断?

    SEO友好的服务器,核心标准是速度、稳定性、IP纯净度、安全合规以及服务商资质,缺一不可, 选择服务器不能只看配置,更要关注机房基础设施、网络质量、IP信誉以及服务商是否持牌经营,符合这些条件的服务器,才能让百度爬虫顺利抓取、用户获得良好体验,从而稳定提升排名,速度:服务器响应时间与硬件配置百度最新的核心算法中……

    2026-07-26
    0
  • 机房T3等级是什么意思?,T3机房等级标准有哪些?

    机房T3等级,代表数据中心具备并行维护能力和N+1冗余架构,可用性达到99.982%级别,是当前企业托管业务的主流选择,什么是机房T3等级?核心定义与行业标准机房T3等级源自Uptime Institute的数据中心分级标准,也对应TIA-942的Rating 3等级,这个等级的核心特征就是可并行维护——在任意……

    2026-07-26
    0
  • 服务器SLA服务协议是什么有什么用,有哪些注意事项?

    服务器SLA服务协议是服务商与用户之间关于服务可用性、性能等方面的正式承诺,它直接决定了业务稳定性和运维成本,什么是服务器SLA服务协议服务器SLA(Service Level Agreement)是服务等级协议的缩写,在IDC和云服务领域,它是一份具有法律效力的合同附件,明确服务商必须提供的服务水平基准,这份……

    2026-07-26
    0
  • 站群服务器泛站和泛目录有什么区别?,怎么选

    泛站基于多个独立域名构建独立站点,泛目录则在同一域名下通过目录结构构建内容,这直接影响SEO权重分配和资源管理,什么是泛站和泛目录泛站模式泛站模式使用多个独立域名,每个域名部署独立网站,内容互不关联,这种结构下,每个站点各自积累SEO权重,适合需要大量外链或分散风险的场景,推广不同产品时,泛站能避免单一站点被处……

    2026-07-26
    0
  • 服务器防火墙硬件和软件哪个效果更好,怎么选

    在服务器防火墙的选型中,硬件防火墙与软件防火墙并非非此即彼,而是互补关系,对于追求高安全等级与稳定性的生产环境,采用硬件防火墙做网络层隔离,配合软件防火墙做主机层加固,是当前公认效果最好的组合方案,硬件防火墙与软件防火墙的核心差异性能与资源占用硬件防火墙依托专用ASIC芯片或FPGA处理数据包,转发延迟通常在微……

    2026-07-26
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注