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)版本。
建议您不要将 LTS 版本的 AutoMinorVersionUpgrade 参数设置为 true(或在Amazon Web Services 管理控制台中启用自动次要版本升级)。这样做可能导致您的数据库集群在自动次要版本升级活动中升级到下一个目标版本,该版本可能不是 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 Support
注意
Aurora MySQL 版本 3.04.0 上的 Aurora Serverless v2 数据库实例目前不支持 Aurora MySQL 增强型二进制日志(binlog)。启用此功能可能会导致数据库不可用。如果您需要在 Aurora MySQL 版本 3.04.0 上使用增强型二进制日志,建议使用非无服务器数据库实例类或将 Serverless v2 数据库实例的最小和最大 ACU 设置为相同的值。
有关 Aurora MySQL 中增强型二进制日志记录的更多信息,请参阅 Aurora 用户指南。
改进
新功能:
-
提高了使用 InnoDB 全文索引在自然语言模式
下搜索短语的查询性能。有关在 MySQL 中进行全文搜索的更多信息,请参阅 Full-Text Search Functions 。 -
Amazon Aurora MySQL 支持本地(集群内)写入转发。现在,您可以将写入操作从读取器数据库实例转发到 Aurora MySQL 数据库集群中的写入器数据库实例。有关更多信息,请参阅在 Aurora MySQL 数据库集群中使用本地写入转发。
-
添加了在禁用了
autocommit的会话中更改在 Amazon Aurora Global Database 中使用写入转发功能的aurora_replica_read_consistency参数值的功能。有关更多信息,请参阅写入转发的配置参数。 -
从 Aurora MySQL 3.04 开始,对于全局数据库写入转发功能,您现在可以通过数据库集群和数据库实例参数组设置
aurora_replica_read_consistency参数值。在 Aurora MySQL 版本 3.04 之前,只能在会话级别配置此参数的值。
修复的安全问题和 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设置为ALL或QUERY时,会导致将过多信息性消息记录到 Aurora MySQL 错误日志中。此问题可能导致数据库实例重启。 -
修复了在启用并行查询时,回滚
INSERT语句期间可能导致数据库重启的问题。 -
修复了在运行
EXPLAIN ANALYZE性能分析工具对返回EXTRA信息列中输出为all select tables were optimized away的查询进行分析时,可能导致数据库实例重启的问题。有关更多信息,请参阅关于EXPLAIN输出格式的 MySQL 文档。 -
修复了当转发的隐式提交语句
遇到错误时,可能导致使用全局写入转发的 Aurora 全局数据库次要区域读取器实例重启的问题。 -
修复了当使用从 Aurora 全局数据库次要区域进行的全局写入转发执行
SELECT FOR UPDATE查询时,可能导致 Aurora 全局数据库主要区域中的写入器实例重启的问题。
常规改进。
-
添加了新的存储过程
mysql.rds_gtid_purged,允许客户设置GTID_PURGED系统变量。有关更多信息,请参阅 mysql.rds_gtid_purged。 -
添加了两个新的存储过程
mysql.rds_start_replication_until和mysql.rds_start_replication_until_gtid,允许客户配置停止二进制日志复制的位置。有关在 Aurora MySQL 中为二进制日志复制配置停止位置的更多信息,请参阅 mysql.rds_start_replication_until。 -
修复了从禁用了自动提交模式的会话调用时,Aurora MySQL 复制控制存储过程无法修改
sql_log_bin变量的问题。 -
增加了对以下数据控制语言(DCL)语句的逻辑复制支持:
GRANT/REVOKE和CREATE/DROP/ALTER/RENAME USER。 -
修复了阻止 InnoDB 统计信息过时的问题,这有时会生成次优的查询执行计划,从而可能导致查询执行时间延长。
-
添加了两个新的系统视图,
information_schema.aurora_global_db_instance_status和information_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_CLOCK且replica_preserve_commit_order变量设置为ON时,可能导致多线程二进制日志复制停止的问题。当在源实例上运行大于 500 MB 的事务时,可能出现此问题。 -
修复了启用了全局数据库写入转发功能时出现的问题,该问题可能导致辅助区域中读取器实例的
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表中的RPO_LAG_IN_MILLISECONDS列和AuroraGlobalDBRPOLagCloudWatch 指标始终显示为零的问题。 -
引入了一个新参数
aurora_tmptable_enable_per_table_limit。启用此参数后,tmp_table_size变量定义由 TempTable 存储引擎创建的单个内存中内部临时表的最大大小。有关其他详细信息,请参阅内部(隐式)临时表的存储引擎。 -
修复了启用了全局数据库写入转发功能时,会创建其他连接的问题。当读取器实例上的只读事务错误地将隐式提交转发给写入器时,就会出现此问题。
-
修复了使用全局数据库写入转发功能的连接在主区域的写入器上未填充
performance_schema.threads表中的PROCESSLIST_USER和PROCESSLIST_HOST字段的问题。有关此表和性能架构的更多信息,请参阅 MySQL 参考手册、The threads Table和《Amazon Aurora 用户指南》中的性能架构概览。 -
修复了使用全局数据库写入转发功能时,
CommitLatencyCloudwatch 指标为辅助区域的读取器实例显示的值不正确的问题。要监控辅助数据库集群上转发的 DML 语句延迟,建议使用ForwardingReplicaDMLLatency和ForwardingWriterDMLLatency指标。也可以使用主区域的写入器实例上的CommitLatency指标来观察提交延迟。有关更多信息,请参阅《Aurora 用户指南》中的用于写入转发的 Amazon CloudWatch 指标。 -
修复了通过将
replica_parallel_workers变量的值设置为大于 0 来配置多线程二进制日志复制时,用于管理和配置二进制日志复制的 Aurora MySQL 复制控制存储过程错误地报错的问题。 -
修复了当多个会话尝试访问内存中不存在的页面时可能导致高 CPU 消耗的问题。
升级和迁移:
-
要执行将 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_backup、mysql.general_log、mysql.slow_log_backup和mysql.slow_log表的架构不一致错误,而可能导致升级预检查失败的问题。有关升级问题排查的更多信息,请参阅 Aurora MySQL 版本 3 升级问题排查。 -
修复了如果触发器定义包含不在引号内的保留关键字,则升级到 Aurora MySQL 3 时可能导致主要版本升级失败的问题。
集成了 MySQL 社区版本错误修复
除以下内容外,此版本还包括 8.0.28 及之前的所有社区错误修复。有关更多信息,请参阅 Aurora MySQL 3.x 数据库引擎更新和之前的所有 MySQL 错误修复。
-
修复了在页面遍历期间重新定位包含内部临时表页面的缓冲块,从而导致断言失败的问题(错误 #33715694)
-
InnoDB:阻止在线 DDL 操作访问越界内存(错误 #34750489、错误 #108925)
-
修复了在处理由多个嵌套的公用表表达式(CTE)组成的复杂 SQL 语句时,有时会生成错误查询结果的问题(错误 #34572040、错误 #34634469、错误 #33856374)