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