本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 支持
注意
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 错误日志中。此问题可能会导致数据库实例重新启动。 -
在 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_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
时,可能导致多线程二进制日志复制停止的问题。当在源上执行大于 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_USER
和PROCESSLIST_HOST
字段的问题。有关此表和性能架构的更多信息,请参阅 MySQL 参考手册、The threads Table和《Amazon Aurora 用户指南》中的性能架构概览。 -
修复了使用全局数据库写入转发功能时,
CommitLatency
Cloudwatch 指标为辅助区域的读取器实例显示的值不正确的问题。要监控辅助数据库集群上转发的 DML 语句延迟,建议使用ForwardingReplicaDMLLatency
和ForwardingWriterDMLLatency
指标。也可以使用主区域的写入器实例上的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_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 操作访问 out-of-bounds 内存(错误# 34750489,错误# 108925)
-
修复了在处理由多个嵌套的公用表表达式(CTE)组成的复杂 SQL 语句时,有时会生成错误查询结果的问题(错误 #34572040、错误 #34634469、错误 #33856374)