Aurora MySQL 数据库引擎更新 2022-10-25(版本 2.11.0,与 MySQL 5.7.12 兼容)此版本不适用于新创建。 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Aurora MySQL 数据库引擎更新 2022-10-25(版本 2.11.0,与 MySQL 5.7.12 兼容)此版本不适用于新创建。

版本:2.11.0

Aurora MySQL 2.11.0 已正式发布。Aurora MySQL 2.x 版本与 MySQL 5.7.12 兼容。有关社群变更的更多信息,请参阅 Changes in MySQL 5.7.12 (2016-04-11, General Availability)

当前支持的 Aurora MySQL 版本有 1.19.5、1.19.6、1.22.*、1.23.*、2.04.*、2.07.*、2.08.*、2.09.*、2.10.*、2.11.*、3.01.* 和 3.02.*。

您可以将现有的 Aurora MySQL 2.* 数据库集群升级到 Aurora MySQL 2.11.0。对于运行 Aurora MySQL 版本 1 的集群,您可以直接将现有 Aurora MySQL 1.23 或更高版本的集群升级到 2.11.0。您也可以将快照从当前支持的任何 Aurora MySQL 版本还原到 Aurora MySQL 2.11.0。

如果您将 Aurora MySQL Global Database 升级到版本 2.11.* 并且开启了写入转发功能,则必须将主数据库集群和辅助数据库集群升级到完全相同的版本(包括补丁级别),才能继续使用写入转发功能。有关升级 Aurora Global Database 次要版本的更多信息,请参阅次要版本升级

如果您有任何问题或疑问,可通过社区论坛和 Amazon Support 联系 Amazon Support。有关更多信息,请参阅《Amazon Aurora 用户指南》中的维护 Amazon Aurora 数据库集群

注意

有关如何升级 Aurora MySQL 数据库集群的信息,请参阅《Amazon Aurora 用户指南》中的升级 Aurora MySQL 数据库集群的次要版本或补丁程序级别

改进

修复了下面列出的安全问题和 CVE:

对托管环境中的处理进行微调的修复和其他增强功能。其他 CVE 修复如下:

新功能:

  • 随着 Aurora MySQL 版本 2.11 的发布,还提供了新的操作系统升级。建议您在升级到版本 2.11 后,将此待处理的操作系统更新应用于您的所有 Aurora MySQL 数据库实例。有关更多信息,请参阅使用操作系统更新

  • 新的动态配置选项 innodb_deadlock_detect 可用于禁用死锁检测。在高并发系统中,当许多线程等待同一个锁时,死锁检测可能会导致速度下降。有时,禁用死锁检测并在发生死锁时依赖 innodb_lock_wait_timeout 设置进行事务回滚可能更高效。(错误 #23477773)有关 Innodb 死锁检测的更多信息,请参阅 MySQL 文档

  • 已添加来自 MySQL 8.0 的 UUID_TO_BINBIN_TO_UUIDIS_UUID 函数。有关使用这些函数的更多信息,请参阅 MySQL Miscellaneous function

  • 增加了对优化程序提示的支持,允许用户在每个表或每个查询的基础上启用或禁用 Aurora MySQL 并行查询。

  • 移除了 R3 实例类型支持。

  • 增加了对 R6i 实例的支持。

可用性改进:

  • 修复了由于错误日志中写入的二进制日志文件和位置不正确而可能导致无法在数据库集群中进行跨区域逻辑复制的问题。在运行 DDL 语句后重启引擎时,可能会出现此问题。

  • 修复了在极少数情况下,在写入器实例上运行访问控制列表(ACL)语句(例如 GRANT 和 FLUSH)时,可能会导致 Aurora 读取器实例重启的问题。此问题更有可能影响具有大量用户和 ACL 操作(例如权限更改)的读取器实例。

  • 修复了在极少数情况下,当事务访问被另一个事务删除的行时,可能会导致写入器实例重启或失效转移的问题。

  • 提高了全文短语搜索性能,显著缩短了在带有全文索引的表中搜索短语所用的时间。

  • 修复了写入器实例在重启后会因恢复缓慢而卡住并随后再次重启的问题。如果初次重启时,数据库中有大量未提交的行,就会发生此问题。

  • 修复了在极少数情况下,当死锁检测器线程卡住时,由于信号灯等待时间过长而导致数据库服务器重启的问题。

  • 修复了在极少数情况下,当 I/O 线程出现死锁时,由于信号灯等待时间过长而导致数据库重启的问题。

常规改进:

  • 修复了在满足以下所有条件时可能导致数据库服务器重启的问题:

    • 在 SQL MODE 中禁用了 ALLOW_INVALID_DATES。

    • 数据库服务器正在处理的 INSERT、UPDATE、DELETE 或 SELECT 语句带有 DATETIME 类型的无效值(月份不在 1 到 12 之间)。

  • 修复了将 log-bin 设置为 OFF 时不遵守二进制日志保留期的问题,这会导致存储利用率高于预期。修复后,将根据您的保留期清除二进制日志。有关如何配置二进制日志保留期的更多信息,请参阅 Aurora MySQL 用户指南

  • 修复了在数据库实例上运行某些数据控制语言(DCL)SQL 语句(例如 GRANT、FLUSH PRIVILEGES 等)时,可能会导致该实例上的可用内存减少的问题。频繁使用此类语句会导致可用内存不断减少,并可能导致数据库实例因 out-of-memory 问题而重新启动。在写入器实例上使用此类语句也可能导致读取器实例上的可用内存减少。

  • 为从中继日志执行的读取引入了更大的读取缓冲区大小,以最大限度地减少读取 I/O 操作的数量,从而减少了 I/O 和 SQL 线程之间的争用。

  • 修复了可能导致 mysql.rds_rotate_slow_log 存储过程失败并显示错误消息“Table 'mysql.slow_log_backup' doesn't exist”的问题。

  • 修复了以下问题:由于只读副本必须从磁盘而不是查询缓存读取数据,因此查询缓存失效过多,从而导致只读副本的 CPU 使用率和延迟高于预期。

  • 修复了允许用户在读取器实例上运行 INSTALL PLUGIN 和 UNINSTALL PLUGIN 命令的问题,该问题可能会导致 LOCK_plugin、LOCK_system_variables_hash、LOCK_global_system_variables 出现死锁。这些语句现在只能在数据库集群中的写入器实例上执行。

  • 修复了在启用了二进制日志记录时,集群可能会遇到高于预期的提交延迟的问题。这会影响所有生成大型二进制日志事件(大小超过 500MB)的事务。

  • 修复了可能导致 INFORMATION_SCHEMA.INNODB_METRICS 表中的 trx_active_transactions 指标值不正确的问题。

  • 修复了在为大型事务执行回滚到保存点时,由于二进制日志文件变得不一致而导致逻辑复制停止的问题。

  • 默认情况下,使用一致的掩码密钥在常规日志和审计日志中屏蔽凭证哈希。 slow-query-log这可以通过 aurora_mask_password_hashes_type 参数进行配置。

  • 修复了在客户观察到的事件中,零停机时间重启(ZDR)持续时间报告有误的问题。

  • 修复了可能导致 mysql_rds_import_binlog_ssl_material 调用失败并显示 MySQL server ERROR 1457 的问题。

  • 修复了转储线程初始化可能与清除二进制日志的线程发生死锁的问题。这可能会让活动的二进制日志文件停止轮换而继续增长,或者导致新的二进制日志副本连接出现问题。

  • 修复了查询缓存可能会在 Aurora 只读副本上返回过时结果的问题。

集成了 MySQL 社区版本错误修复

除以下内容外,此版本还包括 5.7 及之前的所有社区错误修复。有关更多信息,请参阅 Aurora MySQL 2.x 数据库引擎更新和之前的所有 MySQL 错误修复

  • 修复了从性能架构语句事件表(例如,events_statements_current)中读取字符集信息的代码无法阻止同时写入该字符集信息的问题。因此,SQL 查询文本字符集可能无效,从而可能导致服务器退出。通过此修复,无效的字符集会导致 SQL_TEXT 列被截断并阻止服务器退出。(错误 #23540008)

  • InnoDB:社区错误 #25189192、错误 #84038 修复的向后移植。修复了在将表移至其他架构的 RENAME TABLE 操作后,InnoDB 无法更新 INNODB_SYS_DATAFILES 数据字典表的问题。这会导致重启时出错,表明它找不到表空间数据文件。

  • InnoDB:修复了以下问题:在添加新索引时,服务器会丢弃内部定义的外键索引,并试图使用在虚拟生成的列上定义的二级索引作为外键索引,从而导致服务器退出。InnoDB 现在允许外键约束引用在虚拟生成的列上定义的二级索引。(错误 23533396)

  • 修复了两个会话同时执行 INSERT ... ON DUPLICATE KEY UPDATE 操作时,会生成死锁的问题。在元组的部分回滚期间,另一个会话可能会对其进行更新。此错误的修复撤销了对错误 #11758237、错误 #17604730 和错误 #20040791 的修复。(错误 #25966845)

  • 社区错误 #27407480 修复的向后移植:修复了即使启用了 automatic_sp_privileges,也无法正确向例程创建者授予 EXECUTE 和 ALTER ROUTINE 权限的问题。

  • 社区错误 #24671968 修复的向后移植:修复了以下问题:如果 WHERE 子句包含依赖子查询,表在选择列表中的列上有二级索引(后跟子查询中的列),且 GROUP BYDISTINCT 允许查询使用松散索引扫描,则查询可能会产生错误的结果。

  • 修复了如果对多个带外键的表发出多表删除语句,则复制会中断的问题。(错误 #80821)

  • 修复了在特殊情况下,即使启用了 slave_skip_errors,某些从属服务器错误也不会被忽略的问题。如果打开和锁定表失败,或者在运行基于行的复制的服务器上进行字段转换失败,则该错误被视为严重错误,slave_skip_errors 状态将被忽略。该修复可确保在启用 slave_skip_errors 的情况下,应用事务期间报告的所有错误都得到正确处理。(错误 #70640、错误 #17653275)

  • 修复了在 SET PASSWORD 语句从 MySQL 5.6 主服务器复制到 MySQL 5.7 从属服务器,或者从 log_builtin_as_identified_by_password 系统变量设置为 ON 的 MySQL 5.7 主服务器复制到 MySQL 5.7 从属服务器时,密码哈希本身在存储在从属服务器上之前也经过哈希处理的问题。该问题现已得到修复,复制的密码哈希按最初传递给从属服务器的原样存储。(错误 #24687073)

  • 修复了由包裹在多级 JSON 数组和/或对象中的大型子文档组成的 JSON 值的序列化有时需要过长时间才能完成的问题。(错误 #23031146)

  • 无法解析的语句(例如,由于语法错误)将不再写入慢速查询日志。(错误 #33732907)

与 Aurora MySQL 版本 1 进行比较

以下 Amazon Aurora MySQL 功能在 Aurora MySQL 版本 1(兼容 MySQL 5.6)中受支持,但这些功能目前在 Aurora MySQL 版本 2(兼容 MySQL 5.7)中不受支持。

MySQL 5.7 兼容性

此 Aurora MySQL 版本与 MySQL 5.7 数据兼容,包含 JSON 支持、空间索引及生成列等功能。Aurora MySQL 使用 Z 阶曲线原生实现了空间索引功能,使空间数据集的写入性能相比于 MySQL 5.7 提高了 20 倍以上,读取性能提高 10 倍以上。

此 Aurora MySQL 版本当前不支持以下 MySQL 5.7 功能:

  • 组复制插件

  • 增加的页面大小

  • InnoDB 缓冲池启动时加载

  • InnoDB 全文分析器插件

  • 多源复制

  • 在线缓冲池大小调整

  • 密码验证插件

  • 查询重写插件

  • 复制筛选

  • CREATE TABLESPACE SQL 语句