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

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

Aurora MySQL 数据库引擎更新 2023-10-25(版本 3.05.0,与 MySQL 8.0.32 兼容)

版本:3.05.0

Aurora MySQL 3.05.0 已正式发布。Aurora MySQL 3.05 版本与 MySQL 8.0.32 兼容。有关已发生的社群变更的更多信息,请参阅 MySQL 8.0 Release Notes

有关 Aurora MySQL 版本 3 中的新功能的详细信息,请参阅与 MySQL 8.0 兼容的 Aurora MySQL 版本 3。有关 Aurora MySQL 版本 3 和 Aurora MySQL 版本 2 之间的区别,请参阅比较 Aurora MySQL 版本 2 和 Aurora MySQL 版本 3。有关 Aurora MySQL 版本 3 和 MySQL 8.0 社群版的比较,请参阅比较 Aurora MySQL 版本 3 和 MySQL 8.0 社群版

当前支持的 Aurora MySQL 版本有 2.07.9、2.07.10、2.11.*、2.12.*、3.03.*、3.04.* 和 3.05.*。

您可以执行就地升级、还原快照或使用 Amazon RDS 蓝绿部署启动托管蓝绿升级,从当前支持的任何 Aurora MySQL 版本 2 集群升级到 Aurora MySQL 版本 3.05.0 集群。

有关计划升级到 Aurora MySQL 版本 3 的信息,请参阅《Amazon Aurora 用户指南》中的 Aurora MySQL 版本 3 的升级计划。有关 Aurora MySQL 升级的一般信息,请参阅《Amazon Aurora 用户指南》中的升级 Amazon Aurora MySQL 数据库集群

有关问题排查信息,请参阅排查 Aurora MySQL 版本 3 升级问题

如果您有任何疑问或疑虑,可以在社区论坛和 Amazon 支持部门获得Amazon 支持。有关更多信息,请参阅《Amazon Aurora 用户指南》中的维护 Amazon Aurora 数据库集群

改进

新功能:

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

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

可用性改进:

  • 修复了使用并行查询的 Aurora MySQL 数据库实例在运行大量并发并行查询时可能会遇到数据库重启的问题。

  • 修复了由审计日志记录线程导致的锁争用问题,该问题最终会导致 CPU 使用率过高和客户端应用程序超时。

  • 修复了当任何二进制日志源将 gtid_mode 设置为 ONON_PERMISSIVE 时,在启用了增强型二进制日志的二进制日志(binlog)副本集群上可能导致已执行的 GTID 集无法正确恢复的问题。此问题可能会导致副本集群的写入器实例在恢复期间多重启一次,或者在查询已执行的 GTID 集时导致结果不正确。

  • 修复了启用增强型二进制日志后,由于可用内存减少而可能导致 Aurora MySQL 数据库实例重启或失效转移的内存管理问题。

  • 修复了在尝试读取属于已删除表的数据库页面时可能导致数据库实例重启的问题。

  • 修复了当写入器实例将数据库卷增大为 160 GB 的倍数时,可能会导致读取器实例重启的问题。

  • 修复了启用了增强型二进制日志功能的 Aurora MySQL 数据库实例在执行二进制日志恢复过程时可能在数据库实例启动期间卡住的问题。

  • 修复了在初始化大型回滚段时,Aurora MySQL 数据库实例在实例启动期间可能会经历多次重启的问题。

  • 修复了零停机时间修补期间的一个问题,该问题会导致实例重启,从而导致数据库连接意外关闭。

  • 修复了在同时运行 SHOW STATUSPURGE BINARY LOGS 语句时,由于死锁而可能导致数据库实例重启的问题。PURGE BINARY LOGS 是一种托管语句,执行该语句是为了遵守用户配置的二进制日志保留期。

  • 修复了当数据库在内部系统表上创建或删除触发器时,如果写入器实例重启,则可能导致数据库集群不可用的问题。

  • 修复了在具有 Aurora 副本的集群上使用增强型二进制日志功能时,由于长时间等待信号灯而可能导致数据库实例重启的问题。

  • 修复了在执行引用聚合函数的查询时可能导致数据库实例重启的问题。

  • 修复了在极少数情况下,Aurora Serverless v2 错误地尝试在扩展时更新表缓存,而可能导致数据库实例重启的问题。

  • 修复了在实现中间临时表时考虑公用表表达式(CTE)不支持的索引扫描访问方法的问题,这可能会导致不良行为,包括数据库重启或查询结果不正确。我们通过避免使用 TempTable 存储引擎对表使用此类不支持的索引扫描访问方法来修复此问题。

  • 在 Aurora MySQL 3.03.2 及更高版本中,仅对常规 InnoDB 表启用快速插入。这种优化不适用于InnoDB临时表。有关快速插入优化的更多信息,请参阅 Amazon Aurora MySQL 性能增强

常规改进:

  • 修复了在 Aurora MySQL 3.04.0 上运行的 Aurora Serverless v2 数据库集群上启用增强型二进制日志时,可能导致数据库不可用的问题。

  • 现在,在启用了增强型二进制日志功能时,在写入 Aurora 存储之前会删除未使用的存储元数据。这样可以避免在某些情况下,由于通过网络传输的字节数增加而导致写入延迟增加,从而进一步导致数据库重启或失效转移。

  • performance_schema 中添加 malloc_statsmalloc_stats_totals 表后,添加了三个高级系统变量来控制内部内存分配器 Jemalloc 的行为:

    • aurora_jemalloc_background_thread.

    • aurora_jemalloc_dirty_decay_ms.

    • aurora_jemalloc_tcache_enabled.

  • 修复了升级或迁移时未创建 Aurora 特定性能架构表的问题。

  • 添加了一个新的系统变量 aurora_use_vector_instructions。启用此参数后,Aurora MySQL 将使用优化的向量处理指令来提高 I/O 繁重的工作负载的性能。原定设置情况下,该设置在 Aurora MySQL 3.05 及更高版本中设置为 ON。有关更多详细信息,请参阅 Aurora MySQL 配置参数

  • 修复了启用增强型二进制日志时可能导致开启的NumBinaryLogFiles指标显示错误结果的问题。 CloudWatch

  • 向 Amazon SageMaker 发出 Aurora MySQL Machine Learning 操作的请求超时已从 3 秒延长到 30 秒。这有助于解决这样一个问题,即在使用较大的批处理大小时,客户可能会看到从 Aurora MySQL Machine Learning 向 Amazon SageMaker 发出的请求的重试次数或失败次数增加。

  • 在 performance_schema 数据库中添加了对 malloc_statsmalloc_stats_totals 表的支持。

  • LOAD DATA FROM S3 命令中的 FROM 关键字更新为可选关键字。有关更多信息,请参阅将数据从 Amazon S3 存储桶中的文本文件加载到 Amazon Aurora MySQL 数据库集群

  • 增加了对参数 innodb_aurora_instant_alter_column_allowed 的支持,该参数控制 INSTANT 算法是否可用于 ALTER COLUMN 运算。有关更多信息,请参阅集群级别的参数

  • 修复了在启用了写入转发时,可能无法与数据库建立新的客户端连接的问题。

  • 修复了可能导致 table_open_cache 数据库参数的修改在数据库实例重启后才生效的问题。

  • 修复了在快照还原、回溯或数据库克隆操作后,可能导致使用降序索引的 AUTO_INCREMENT 列出现重复键错误的问题。

  • 修复了一个涉及索引扫描的问题,即在执行 SELECT 查询时,如果使用 GROUP BY 子句且 aurora_parallel_query 参数设置为 ON,则可能会返回不准确的结果。

  • 修复了在对 INFORMATION_SCHEMA INNODB_TABLESPACES 表执行查询时可能导致可用内存耗尽的问题。

  • 修复了读取器实例无法打开表并显示 ERROR 1146 的问题。在写入器实例上使用 INPLACE 算法并执行某些类型的在线数据定义语言(DDL)时,会出现此问题。

  • 修复了一个问题,在内部监控流程错误地提交重复的 Aurora Serverless v2 扩展请求时,可避免在扩展期间重启实例。

  • 修复了当连接的二进制日志(binlog)使用者使用重复的二进制日志复制服务器 ID 时,可能导致数据库重启的问题。

  • 为 Aurora MySQL 管理的二进制日志副本引入了内存中继日志缓存。这一改进有助于将二进制日志复制吞吐量提高达 40%。使用单线程二进制日志复制时,或者在启用 GTID 自动定位的情况下使用多线程复制时,会自动启用此增强功能。

升级和迁移:

  • 从 MySQL 5.7 升级到 MySQL 8.0 时,如果单个数据库中有大量表,则会导致服务器消耗过多内存。经调查发现,我们在检查表是否可以升级的过程中,预先获取了所有数据字典 Table 对象,处理了每个对象并获取其名称,然后对列表执行了检查版本兼容性。在这种情况下,无需事先获取所有对象,这会极大增加内存消耗。为了更正这个问题,在这种情况下,我们现在一次获取一个 Table 对象,执行所有必需的检查,获取其名称并释放该对象,然后再继续处理下一个对象。(错误 #34526001)

  • 通过使用数据库实例上所有可用的 vCPU 并行执行表空间检查,提高了从 Aurora MySQL 版本 2 到版本 3 的主要版本升级的性能。

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

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

  • 修复了由于后台 TLS 证书轮换可能导致更高 CPU 使用率的问题。(社区错误修复 #34284186)