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

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

Aurora MySQL 数据库引擎更新 2023-07-31(版本 3.04.0,兼容 MySQL 8.0.28)

版本:3.04.0

Aurora MySQL 3.04.0 已正式发布。Aurora MySQL 3.04 版与 MySQL 8.0.28 兼容,Aurora MySQL 3.03 版与 MySQL 8.0.26 兼容,Aurora MySQL 3.02 版与 MySQL 8.0.23 兼容。有关从 8.0.23 到 8.0.28 发生的社群变更的更多信息,请参阅 MySQL 8.0 Release Notes

注意

此版本被指定为长期支持 (LTS) 版本。有关更多信息,请参阅《Amazon Aurora 用户指南》中的 Aurora MySQL 长期支持(LTS)版本

有关 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.11.1、2.11.2、3.01.*、3.02.*、3.03.* 和 3.04.0。

您可以执行就地升级、还原快照或使用 Amazon RDS 蓝绿部署启动托管蓝绿升级,从当前支持的任何 Aurora MySQL 版本 2 集群升级到 Aurora MySQL 版本 3.04.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 数据库集群

注意

Aurora MySQL 版本 3.04.0 上的 Aurora Serverless v2 数据库实例目前不支持 Aurora MySQL 增强型二进制日志(binlog)。启用此功能可能会导致数据库不可用。如果您需要在 Aurora MySQL 版本 3.04.0 上使用增强型二进制日志,建议使用非无服务器数据库实例类或将 Serverless v2 数据库实例的最小和最大 ACU 设置为相同的值。

有关 Aurora MySQL 中增强型二进制日志记录的更多信息,请参阅 Aurora 用户指南

改进

新功能:

修复了安全问题和 CVE:

  • 将 SSL/TLS 提供程序从 OpenSSL 更改为 Amazon-LC。这带来了许多变化,包括但不限于以下内容:

    • 从 Aurora MySQL 版本 3.04.0 升级到更高版本时,现在可以通过零停机重启和零停机修补来恢复使用 SSL 的数据库连接。

    • 支持 TLSv1.3,包括支持 TLS_AES_128_GCM_SHA256、TLS_AES_256_GCM_SHA384 和 TLS_CHACHA20_POLY1305_SHA256 SSL 密码。

    • 取消对不太安全的 DHE-RSA-* 密码的支持。

    有关更多信息,请参阅将 TLS 与 Aurora MySQL 数据库集群结合使用

  • rds_superuser_role 中添加了动态权限 SHOW_ROUTINE,允许访问所有存储例程的定义和属性,例如存储过程和函数。有关更多详细信息,请参阅 SHOW_ROUTINE

  • 修复了在审计日志文件轮换期间可能导致审计日志错过事件的问题。

  • 启用了对安全且高性能的传输层安全性协议(TLS)1.3 版的支持,同时保持与 TLS 1.2 版的兼容性。

  • TLS 版本 TLSv1 和 TLSv1.1 在 MySQL 8.0.26 社群版中已弃用,在 Aurora MySQL 3.03 中也已相应地弃用。这些协议现已从 MySQL 8.0.28 社群版中删除,也已相应地从 Aurora MySQL 3.04 中删除。默认情况下,任何无法通过 TLS 1.2 或更高版本进行通信的安全客户端都将被拒绝。有关使用 TLS 连接数据库实例的更多信息,请参阅使用 Amazon Aurora MySQL 实现高安全性

此版本中包含以下 CVE 修复程序:

可用性改进:

  • 修复了在长时间事务恢复期间可能导致数据库重新启动的问题。

  • 修复了数据库活动流事件加密中可能导致数据库重新启动的问题。

  • 修复了在启动期间或在 Aurora Serverless v2 中扩展期间,因初始化 InnoDB 缓冲池时出现内存不足错误而导致的内存管理问题。此问题可能导致数据库实例重启或性能下降,包括吞吐量降低或延迟增加。

  • 修复了在执行使用 Aurora MySQL 并行查询执行计划的查询时可能导致 Aurora MySQL 阅读器实例重启的问题。

  • 修复了在某些情况下可能导致 Aurora 阅读器实例在测距期间重启的问题。

  • 修复了在执行涉及自动增量列的繁重插入操作时重新启动时可能会中断数据库恢复的问题。

  • 修复了 Aurora 高级审计中的以下问题:当服务器变量 server_audit_events 设置为 ALLQUERY 时,会导致将过多信息性消息记录到 Aurora MySQL 错误日志中。此问题可能会导致数据库实例重新启动。

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

  • 修复了启用并行查询后,在回滚INSERT语句期间可能导致数据库重启的问题。

  • 修复了在EXTRA信息列中返回输出的all select tables were optimized away查询上运行EXPLAIN ANALYZE分析工具时可能导致数据库实例重新启动的问题。有关更多信息,请参阅关于 EXPLAIN 输出格式的 MySQL 文档。

  • 修复了在转发的隐式提交语句遇到错误时,可能导致使用全局写入转发的 Aurora 全局数据库辅助区域读取器实例重新启动的问题。

  • 修复了使用来自 Aurora 全球数据库辅助区域的全局写入转发执行SELECT FOR UPDATE查询时,可能导致 Aurora 全球数据库主区域中的写入器实例重新启动的问题。

常规改进:

  • 添加了新的存储过程 mysql.rds_gtid_purged,允许客户设置 GTID_PURGED 系统变量。有关更多信息,请参阅 mysql.rds_gtid_purged

  • 添加了两个新的存储过程 mysql.rds_start_replication_untilmysql.rds_start_replication_until_gtid,允许客户配置停止二进制日志复制的位置。有关在 Aurora MySQL 中为二进制日志复制配置停止位置的更多信息,请参阅 mysql.rds_start_replication_until

  • 修复了从禁用了自动提交模式的会话调用时,Aurora MySQL 复制控制存储过程无法修改 sql_log_bin 变量的问题。

  • 增加了对以下数据控制语言(DCL)语句的逻辑复制支持:GRANT/REVOKECREATE/DROP/ALTER/RENAME USER

  • 修复了阻止 InnoDB 统计信息过时的问题,这有时会生成次优的查询执行计划,从而可能导致查询执行时间延长。

  • 添加了两个新的系统视图,information_schema.aurora_global_db_instance_statusinformation_schema.aurora_global_db_status。这些视图可用于显示 Aurora MySQL Global Database 集群中主要资源和次要资源的状态和拓扑。有关这两个系统视图的详细信息,请参阅 Aurora MySQL 特定的 information_schema 表

  • 修复了用户在执行带有转义通配符的 SET ROLE 语句后,无法访问名称中包含通配符的数据库的问题。

  • 修复了在处理审计日志轮换时报告的事件可能未写入审计日志的问题。

  • 修复了通过 TRIGGER 执行创建内部临时表可能导致写入器数据库实例重启的问题。

  • 添加了一个新的系统变量 innodb_aurora_max_partitions_for_range。在某些无法获得持久统计数据的情况下,可以使用此参数来改善分区表的行计数估计执行时间。有关更多信息,请参阅文档 Aurora MySQL 配置参数

  • 修复了在创建分区表时,错误地允许客户将 ROW_FORMAT 设置为 COMPRESSED 的问题。表将被隐式转换为 COMPACT 格式,并发出警告,告知 Aurora MySQL 不支持压缩表。

  • 修复了当 replica_parallel_type 变量设置为 LOGICAL_CLOCKreplica_preserve_commit_order 变量设置为 ON 时,可能导致多线程二进制日志复制停止的问题。当在源上执行大于 500MB 的事务时,可能会出现此问题。

  • 修复了启用了全局数据库写入转发功能时出现的问题,该问题可能导致辅助区域中读取器实例的 performance_schema 配置更改无意中转发到主区域中的写入器实例。

  • 修复了从 Aurora 存储文件系统读取数据页面后,可能无法更新服务器状态变量 innodb_buffer_pool_reads 的问题。

  • 选择 Aurora I/O-Optimized 集群配置时,不支持 Aurora MySQL 并行查询。有关更多信息,请参阅 Amazon Aurora MySQL 并行查询限制

  • 修复了启用了并行查询时导致查询计划优化程序为某些受益于主索引或二级索引的 SELECT 查询选择效率低下的执行计划的问题。

  • 已将时区定义升级到 IANA 2023c 版本。

  • 在二进制日志副本上引入了文件管理性能优化,以帮助减少写入中继日志文件时的争用。

  • 修复了无论用户工作量如何,information_schema.aurora_global_db_status表和AuroraGlobalDBRPOLag CloudWatch 指标中的RPO_LAG_IN_MILLISECONDS列始终显示为零的问题。

  • 引入了一个新参数 aurora_tmptable_enable_per_table_limit。启用此参数后,该tmp_table_size变量将定义 TempTable 存储引擎创建的单个内存内部临时表的最大大小。有关其他详细信息,请参阅内部(隐式)临时表的存储引擎

  • 修复了启用了全局数据库写入转发功能时,会创建其他连接的问题。当读取器实例上的只读事务错误地将隐式提交转发给写入器时,就会出现此问题。

  • 修复了使用全局数据库写入转发功能的连接在主区域的写入器上未填充 performance_schema.threads 表中的 PROCESSLIST_USERPROCESSLIST_HOST 字段的问题。有关此表和性能架构的更多信息,请参阅 MySQL 参考手册、The threads Table 和《Amazon Aurora 用户指南》中的性能架构概览

  • 修复了使用全局数据库写入转发功能时,CommitLatency Cloudwatch 指标为辅助区域的读取器实例显示的值不正确的问题。要监控辅助数据库集群上转发的 DML 语句延迟,建议使用 ForwardingReplicaDMLLatencyForwardingWriterDMLLatency 指标。也可以使用主区域的写入器实例上的 CommitLatency 指标来观察提交延迟。有关更多信息,请参阅 Aurora 用户指南、亚马逊写入转发 CloudWatch 指标

  • 修复了通过将 replica_parallel_workers 变量的值设置为大于 0 来配置多线程二进制日志复制时,用于管理和配置二进制日志复制的 Aurora MySQL 复制控制存储过程错误地报错的问题。

升级和迁移:

  • 要执行将 Aurora Global Database 从 Aurora MySQL 版本 3.01、3.02 或 3.03 升级到 Aurora MySQL 版本 3.04 或更高版本的次要版本升级,请参阅通过修改引擎版本升级 Aurora MySQL

  • 修复了从 Aurora MySQL 2 升级到 Aurora MySQL 3 时,由于报告了 mysql.general_log_backupmysql.general_logmysql.slow_log_backupmysql.slow_log 表的架构不一致错误,而可能导致升级预检查失败的问题。有关升级问题排查的更多信息,请参阅 Aurora MySQL 版本 3 升级问题排查

  • 修复了如果触发器定义包含不在引号内的保留关键字,则升级到 Aurora MySQL 3 时可能导致主要版本升级失败的问题。

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

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

  • 修复了在页面遍历期间重新定位包含内部临时表页面的缓冲块,从而导致断言失败的问题(错误 #33715694)

  • InnoDB:阻止在线 DDL 操作访问 out-of-bounds 内存(错误# 34750489,错误# 108925)

  • 修复了在处理由多个嵌套的公用表表达式(CTE)组成的复杂 SQL 语句时,有时会生成错误查询结果的问题(错误 #34572040、错误 #34634469、错误 #33856374)