本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Aurora MySQL 数据库引擎更新 2024-11-18(版本 3.08.0,兼容 MySQL 8.0.39)
版本:3.08.0
Aurora MySQL 3.08.0 现已正式上市。Aurora MySQL 3.08 版本与 MySQL 8.0.39 兼容。有关已发生的社群变更的更多信息,请参阅 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 用户指南中的 Aurora MySQL 版本 3 和 MySQL 8.0 社区版的比较。
目前支持的 Aurora MySQL 版本有 2.11.*、2.12.*、3.04.*、3.05.*、3.06.*、3.07.* 和 3.08.*。
您可以使用 A mazon RDS 蓝/绿部署执行就地升级、还原快照或启动托管蓝/绿升级,从当前支持的 Aurora MySQL 版本 2 集群升级到 Aurora MySQL 3.08.0 版集群。
有关计划升级到 Aurora MySQL 版本 3 的信息,请参阅规划 Aurora MySQL 集群的主要版本升级。有关 Aurora MySQL 升级的一般信息,请参阅《Amazon Aurora 用户指南》中的升级 Amazon Aurora MySQL 数据库集群。
有关疑难解答信息,请参阅 A mazon Aurora 用户指南中的 Aurora MySQL 就地升级疑难解答。
如果您有任何疑问或疑虑,可以在社区论坛和 Amazon 支持部门获得Amazon 支持
新特征
-
添加了三个新的Amazon CloudWatch 指标,允许用户监控InnoDB的清除过程:
-
PurgeBoundary
-
PurgeFinishedPoint
-
TruncateFinishedPoint
有关更多信息,请参阅亚马逊 Aurora 用户指南中的亚马逊 Aurora CloudWatch 指标。
-
-
添加了一个新 CloudWatch 指标
TransactionAgeMaximum
,允许用户识别可能阻碍清除界限的长时间运行的交易。有关更多信息,请参阅亚马逊 Aurora 用户指南中的亚马逊 Aurora CloudWatch 指标。 -
为避免 out-of-memory (OOM) 添加了三个新 CloudWatch 指标:
-
AuroraMillisecondsSpentInOomRecovery
-
AuroraNumOomRecoverySuccessful
-
AuroraNumOomRecoveryTriggered
有关更多信息,请参阅亚马逊 Aurora 用户指南中的亚马逊 Aurora CloudWatch 指标。
-
-
将 out-of-memory (OOM) 避免的三个 CloudWatch 指标从运行总数更改为增量计数器:
-
AuroraMemoryNumDeclinedSqlTotal
-
AuroraMemoryNumKillConnTotal
-
AuroraMemoryNumKillQueryTotal
有关更多信息,请参阅亚马逊 Aurora 用户指南中的亚马逊 Aurora CloudWatch 指标。
-
-
添加了两个全局状态变量来显示内部临时表
使用的内存量: aurora_temptable_ram_allocation
和aurora_temptable_max_ram_allocation
。这些全局状态变量提高了可观察性,并有助于诊断与内部临时表内存使用有关的问题。有关更多信息,请参阅亚马逊 Aurora 用户指南中的 Aurora MySQL 全局状态变量。
-
引入了新的系统变量
aurora_optimizer_trace_print_before_purge
,以便在服务器从内存中清除跟踪记录之前,将优化器跟踪打印到错误日志中。可以根据系统变量 optimizer_trace_offset 和 o ptimizer _trace_limit 设置的阈值触发清除。 -
增加了对以下数据库实例类的支持:
-
db.r7i
-
db.r8g
有关更多信息,请参阅《Amazon Aurora 用户指南》中的数据库实例类支持的数据库引擎。
-
改进
修复了安全问题,并且 CVEs:
-
为二进制日志 (binlog) 复制引入了一个新用户,
rdsrepladmin_priv_checks_user
。有关更多信息,请参阅 Amazon Aurora 用户指南中的权限检查用户是否进行二进制日志复制。 -
修复了 A urora MySQL 存储过程的输入参数可能无法正确处理的问题。
此版本包括 MySQL 8.0.39 之前的所有社区 CVE 修复。包括以下 CVE 修复程序:
可用性改进:
-
修复了一个缺陷,该缺陷可能导致服务器在已立即删除列的表上运行数据操纵语言 (DML) 命令后意外重启,从而导致已删除和未删除的列数大于 1017。
-
修复了可能导致数据库日志文件无法正确轮换,从而导致数据库实例的本地存储空间使用量
增加的问题。 -
修复了在启用 aurora_oom_ response 时可能导致数据库实例在内存不足的情况下停止关闭连接的问题,从而导致本来可以避免的 out-of-memory重启。
-
修复了在释放用于日志应用程序的内存时可能导致读取器数据库实例重新启动的问题。
-
修复了计算全文搜索 (FTS) 索引的内部指标时可能导致数据库重启的问题。
-
修复了在子查询中使用子
LIMIT
句和索引条件下推时,有时会产生不正确的查询结果的社区问题。 -
修复了导致内存访问冲突导致释放不再由线程拥有的互斥对象的问题。
-
修复了在中继日志恢复期间处理大量中继日志文件时可能导致二进制日志
(binlog) 副本重启的问题。 -
修复了在启用写入转发功能时可能导致 Aurora 阅读器数据库实例重启的问题。
-
修复了包含多个
UNION
子句的查询可能分配大量内存从而导致数据库实例重启的问题。 -
修复了在读取器数据库实例上运行并行查询时导致写入器数据库实例重新启动的问题。
-
修复了由于
FLUSH RELAY LOGS
运行命令时副本的 I/O 线程遇到死锁而导致副本上的二进制日志复制停滞的问题。 -
修复了在启用增强型二进制日志的数据库集群上处理大型 GTID 集时导致数据库实例重启的问题。
-
修复了启用内存中继日志缓存时可能导致二进制日志副本重启的问题。使用单线程二进制日志复制或启用了 GTID 自动定位的多线程复制时,Aurora MySQL 托管的二进制日志副本将启用内存中继日志缓存。
-
修复了在数据库引擎启动期间应用数据控制语言 (DCL) 语句时可能导致二进制日志副本实例重新启动的问题。
-
修复了在极少数情况下,读取器数据库实例在对由其写入器数据库实例更新的表运行
SELECT
查询时会出现死锁而导致重新启动的问题。 -
修复了可能导致 Aurora 全球数据库读取器实例在写入转发会话处于活动状态时重新启动的问题。
-
修复了在写入器数据库实例上出现某些罕见事务提交命令时可能导致 Aurora 只读副本重启的问题。
-
修复了在启用了增强型二进制日志的数据库实例上运行时取消计划事件
时可能导致数据库重新启动的问题。
常规改进:
-
修复了在零停机时间修补 (ZDP) 或零停机时间重启 (ZDR) 期间客户端连接可能卡住的问题。
-
修复了在极少数情况下,由于处理打开的表失败时可能出现内存管理问题而导致数据库实例重新启动的问题。
-
修复了在具有主键列和唯一键列的表上执行并发语句时,以及当
INSERT
语句在不同的行上存在唯一键冲突时,可能会导致 SQLINSERT
语句在某些行上遇到意外AUTO_INCREMENT
的主键冲突错误或警告的问题。 -
性能架构仪器现在
memory/sql/sp_head::main_mem_root
是受控仪器。因此,分配用于解析和表示存储程序的内存现在会影响每个连接的内存限制。 -
修复了更新期间无法通过空间索引读行的问题。
-
修复了导致用户无法禁用本地写入转发的问题。
-
修复了使用写入转发时
SELECT COUNT
查询可能返回错误结果的问题。 -
修复了 ZDP 错误地恢复查询中设置为提示的会话变量时可能导致查询结果不正确的问题。
-
修复了升级场景中撤消表空间大于阈值 innod
b_max_undo_log_size 时自动截断的问题。 -
修复了在设置为时无法测量提交延迟和提交吞吐
innodb_flush_log_at_trx_commit
量的问题0
。 -
修复了可能导致错误报告 Aurora 副本延迟的问题。
-
修复了在使用 Aurora 全球数据库时为
threads_running
变量提供的值不正确的问题。 -
修复了在使用外键的表上应用复制更改时,启用并行二级索引优化的 Aurora MySQL 二进制日志副本会重启的问题。
-
修复了在放大或缩小事件期间长时间调整锁定哈希表大小而导致的重启问题。
-
修复了先前启用增强型二进制日志时,禁用二进制日志记录后可能导致数据库实例重启的问题。
-
引入了优化,以减少逻辑数据字典
恢复过程中存在大量表时的内存使用量。 -
修复了在已配置二进制日志复制的情况下,用户在二进制日志副本上运行 mys ql.rds_set_external_sou rce 存储过程时可能会遇到
ERROR 1377 (HY000): Fatal error during log purge
错误的问题。 -
修复了在 ZDR 之后无法保留用户角色权限的缺陷。
-
修复了与视图定义器的默认角色相关的内存问题。
-
修复了可能导致数据库实例在运行时
SHOW VOLUME STATUS
重启的问题。 -
修复了在扩容或缩小事件期间缓冲池大小调整时间过长而导致的重启问题。
-
修复了在缩小事件期间由于缓冲区大小调整而导致逻辑提前读取 (LRA) 访问已释放页面而导致的重启问题。
-
修复了当
SELECT
查询与使用物化作为策略的半联接转换LEFT OUTER JOIN
一起使用时,查询返回错误结果的问题。 -
修复了可能导致无法完成禁用写入转发过程的问题。
-
修复了
ActiveTransactions
和BlockedTransactions
CloudWatch 指标报告的值低于预期值的问题。 -
修复了副本处理从父表和子表中显式删除的多表
DELETE
语句时,二进制日志复制中断的问题。 -
修复了使用返回
enum
类型的用户定义函数处理触发器时可能导致数据库实例重启的问题。 -
修复了使用
binlog_format
设置为进行复制时,该DMLLatency
CloudWatch 指标会为二进制日志副本实例显示错误值的问题。row
-
修复了 MySQL 事件调度器
运行的慢速 INSERT
UPDATE
查询和查询不会记录在慢速查询日志中的问题,除非之前有慢速SELECT
查询。DELETE
-
修复了在极少数情况下导致 Aurora 只读副本间歇性不可用或副本上的表定义不一致(有时会出现错误
Table does not exist
)的问题。这是由于副本上的并行读取查询以及写入器数据库实例上的数据定义语言 (DDL) 操作。 -
修复了导致该
SHOW BINARY LOGS
命令需要更长时间才能在启用或之前启用增强型二进制日志的数据库集群上运行的问题。如果同时运行多个SHOW BINARY LOGS
命令,此问题还可能导致提交延迟增加。
升级和迁移:
-
对于具有大量数据库对象(例如表、触发器和例程)的数据库集群,提高了从 Aurora MySQL 版本 2 升级到版本 3 的主版本的性能。
对于较大的数据库实例类,数据库升级过程使用多个线程将传统的 MySQL 对象元数据并行升级到新的原子 MySQL 8.0 数据字典。
-
修复了目标 Aurora MySQL 数据库引擎版本为 3.04.0 或更高版本时导致升级或迁移失败的问题。当
lower_case_table_names
数据库集群参数设置为1
,且 MySQL 数据库排序规则与小写表名不兼容时,就会发生这种情况。
集成了 MySQL 社区版本错误修复
除以下内容外,此版本还包括8.0.39之前的所有社区错误修复。有关更多信息,请参阅 Aurora MySQL 3.x 数据库引擎更新和之前的所有 MySQL 错误修复。
-
修复了导致某些同时具有
JOIN
和UNION
操作的查询的结果集中错误地省略NULL
值的问题。(社区错误修复 #114301)