比较 Aurora MySQL 版本 2 和 Aurora MySQL 版本 3 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

比较 Aurora MySQL 版本 2 和 Aurora MySQL 版本 3

使用以下内容了解在将 Aurora MySQL 版本 2 集群升级到版本 3 时需要注意的更改。

Aurora MySQL 版本 2 和 3 之间的功能区别

在 Aurora MySQL for MySQL 5.7 中支持以下 Amazon Aurora MySQL 功能,但在 Aurora MySQL for MySQL 8.0 中不支持这些功能。

  • 您不能将 Aurora MySQL 版本 3 用于 Aurora Serverless v1 集群。Aurora MySQL 版本 3 可与 Aurora Serverless v2 一起使用。

  • 实验室模式不适用于 Aurora MySQL 版本 3。Aurora MySQL 版本 3 中没有任何实验室模式功能。即时 DDL 取代了以前在实验室模式下可用的快速线上 DDL 功能。有关示例,请参阅即时 DDL(Aurora MySQL 版本 3)

  • 查询缓存已从社群 MySQL 8.0 以及 Aurora MySQL 版本 3 中删除。

  • Aurora MySQL 版本 3 与社群 MySQL 即时哈希联接功能兼容。未使用 Aurora MySQL 版本 2 中特定于 Aurora 的哈希联接实现。有关在 Aurora 并行查询中使用哈希联接的信息,请参阅 为并行查询集群开启哈希联接Aurora MySQL 提示。有关哈希联接的一般用法信息,请参阅 MySQL 参考手册中的哈希联接优化

  • 在 Aurora MySQL 版本 2 中弃用的 mysql.lambda_async 存储过程将在版本 3 中删除。对于版本 3,请使用异步函数 lambda_async

  • Aurora MySQL 版本 3 中的原定设置字符集是 utf8mb4。Aurora MySQL 版本 2 中的原定设置字符集是 latin1。有关此字符集的信息,请参阅 MySQL 参考手册中的 utf8mb4 字符集(4 字节 UTF-8 Unicode 编码)

一些 Aurora MySQL 功能可用于 Amazon 区域和数据库引擎版本的特定组合。有关详细信息,请参阅Amazon Aurora 中受 Amazon Web Services 区域 和 Aurora 数据库引擎支持的功能

实例类支持

Aurora MySQL 版本 3 支持与 Aurora MySQL 版本 2 不同的一组实例类:

  • 对于较大的实例,您可以使用现代实例类,例如 db.r5db.r6gdb.x2g

  • 对于较大的实例,您可以使用现代实例类,例如 db.t3db.t4g

    注意

    建议仅将 T 数据库实例类用于开发和测试服务器,或其他非生产服务器。有关 T 实例类的更多详细信息,请参阅使用 T 实例类进行开发和测试

Aurora MySQL 版本 2 中的以下实例类不适用于 Aurora MySQL 版本 3:

  • db.r4

  • db.r3

  • db.t3.small

  • db.t2

检查您的管理脚本中是否有任何创建 Aurora MySQL 数据库实例的 CLI 语句。Aurora MySQL 版本 3 不可用的硬编码实例类名称。如有必要,请将实例类名称修改为 Aurora MySQL 版本 3 支持的名称。

提示

检查可用于 Aurora MySQL 版本和 Amazon 区域特定组合的实例类,请使用 describe-orderable-db-instance-options Amazon CLI 命令。

有关 Aurora 实例类的完整详细信息,请参阅 Aurora 数据库实例类

Aurora MySQL 版本 3 的参数更改

Aurora MySQL 版本 3 包括新的集群级和实例级配置参数。Aurora MySQL 版本 3 还删除了 Aurora MySQL 版本 2 中存在的一些参数。由于包容性语言的倡议,一些参数名称发生了变化。为了向后兼容,您仍可以使用旧名称或使用新名称检索参数值。但是,您必须使用新名称在自定义参数组中指定参数值。

在 Aurora MySQL 版本 3 中,lower_case_table_names 参数的值在创建集群时永久设置。如果对此选项使用非原定设置值,请在升级之前设置 Aurora MySQL 版本 3 自定义参数组。然后,在创建集群或快照还原操作期间指定参数组。

注意

使用基于 Aurora MySQL 的 Aurora 全局数据库时,如果开启了 lower_case_table_names 参数,则无法执行从 Aurora MySQL 版本 2 到版本 3 的就地升级。改用快照还原方法。

在 Aurora MySQL 版本 3 中,init_connectread_only 参数不适用于具有 CONNECTION_ADMIN 权限的用户。这包括 Aurora 主用户。有关更多信息,请参阅 基于角色的权限模型

有关 Aurora MySQL 集群参数的完整列表,请参阅 集群级别的参数。该表涵盖了 Aurora MySQL 版本 2 和 3 的所有参数。该表包括一些说明,显示了 Aurora MySQL 版本 3 中哪些参数是新增的,哪些参数已从 Aurora MySQL 版本 3 中删除。

有关 Aurora MySQL 实例参数的完整列表,请参阅 实例级参数。该表涵盖了 Aurora MySQL 版本 2 和 3 的所有参数。该表包括一些说明,显示了 Aurora MySQL 版本 3 中哪些参数是新增的,哪些参数已从 Aurora MySQL 版本 3 中删除。它还包括显示哪些参数在早期版本中可修改,但不能在 Aurora MySQL 版本 3 中修改的说明。

有关已更改的参数名称的信息,请参阅 Aurora MySQL 版本 3 的包容性语言更改

状态变量

有关不适用于 Aurora MySQL 的状态变量的信息,请参阅 不适用于 Aurora MySQL 的 MySQL 状态变量

Aurora MySQL 版本 3 的包容性语言更改

Aurora MySQL 版本 3 与 MySQL 社群版的 8.0.23 版本兼容。Aurora MySQL 版本 3 还包括 MySQL 8.0.26 中与包容性语言的关键字和系统架构相关的更改。例如,现在首选 SHOW REPLICA STATUS 命令,而不是 SHOW SLAVE STATUS

以下 Amazon CloudWatch 指标在 Aurora MySQL 版本 3 中有新名称。

在 Aurora MySQL 版本 3 中,只有新的指标名称可用。升级到 Aurora MySQL 版本 3 时,请务必更新依赖指标名称的任何告警或其他自动化。

旧名称 新名称
ForwardingMasterDMLLatency ForwardingWriterDMLLatency
ForwardingMasterOpenSessions ForwardingWriterOpenSessions
AuroraDMLRejectedMasterFull AuroraDMLRejectedWriterFull
ForwardingMasterDMLThroughput ForwardingWriterDMLThroughput

以下状态变量在 Aurora MySQL 版本 3 中有新名称。

为了获得兼容性,您可以在初始的 Aurora MySQL 版本 3 中使用任何一个名称。未来版本将删除旧的状态变量名称。

要删除的名称 新名称或首选名称
Aurora_fwd_master_dml_stmt_duration Aurora_fwd_writer_dml_stmt_duration
Aurora_fwd_master_dml_stmt_count Aurora_fwd_writer_dml_stmt_count
Aurora_fwd_master_select_stmt_duration Aurora_fwd_writer_select_stmt_duration
Aurora_fwd_master_select_stmt_count Aurora_fwd_writer_select_stmt_count
Aurora_fwd_master_errors_session_timeout Aurora_fwd_writer_errors_session_timeout
Aurora_fwd_master_open_sessions Aurora_fwd_writer_open_sessions
Aurora_fwd_master_errors_session_limit Aurora_fwd_writer_errors_session_limit
Aurora_fwd_master_errors_rpc_timeout Aurora_fwd_writer_errors_rpc_timeout

以下配置参数在 Aurora MySQL 版本 3 中有新名称。

为了获得兼容性,您可以在初始的 Aurora MySQL 版本 3 中使用任何一个名称以检查 mysql 客户端中的参数值。当修改自定义参数组中的值时,只能使用新名称。未来版本将删除旧的参数名称。

要删除的名称 新名称或首选名称
aurora_fwd_master_idle_timeout aurora_fwd_writer_idle_timeout
aurora_fwd_master_max_connections_pct aurora_fwd_writer_max_connections_pct
master_verify_checksum source_verify_checksum
sync_master_info sync_source_info
init_slave init_replica
rpl_stop_slave_timeout rpl_stop_replica_timeout
log_slow_slave_statements log_slow_replica_statements
slave_max_allowed_packet replica_max_allowed_packet
slave_compressed_protocol replica_compressed_protocol
slave_exec_mode replica_exec_mode
slave_type_conversions replica_type_conversions
slave_sql_verify_checksum replica_sql_verify_checksum
slave_parallel_type replica_parallel_type
slave_preserve_commit_order replica_preserve_commit_order
log_slave_updates log_replica_updates
slave_allow_batching replica_allow_batching
slave_load_tmpdir replica_load_tmpdir
slave_net_timeout replica_net_timeout
sql_slave_skip_counter sql_replica_skip_counter
slave_skip_errors replica_skip_errors
slave_checkpoint_period replica_checkpoint_period
slave_checkpoint_group replica_checkpoint_group
slave_transaction_retries replica_transaction_retries
slave_parallel_workers replica_parallel_workers
slave_pending_jobs_size_max replica_pending_jobs_size_max
pseudo_slave_mode pseudo_replica_mode

以下存储过程在 Aurora MySQL 版本 3 中有新名称。

为了获得兼容性,您可以在初始的 Aurora MySQL 版本 3 中使用任何一个名称。未来版本将删除旧的过程名称。

要删除的名称 新名称或首选名称
mysql.rds_set_master_auto_position mysql.rds_set_source_auto_position
mysql.rds_set_external_master mysql.rds_set_external_source
mysql.rds_set_external_master_with_auto_position mysql.rds_set_external_source_with_auto_position
mysql.rds_reset_external_master mysql.rds_reset_external_source
mysql.rds_next_master_log mysql.rds_next_source_log

AUTO_INCREMENT 值

在 Aurora MySQL 版本 3 中,Aurora 在重启每个数据库实例时保留每个表的 AUTO_INCREMENT 值。在 Aurora MySQL 版本 2 中,AUTO_INCREMENT 值在重启后不会保留。

当您通过从快照还原、执行时间点恢复和克隆集群来设置新集群时,不会保留 AUTO_INCREMENT 值。在这些情况下,AUTO_INCREMENT 值将根据创建快照时表中的最大列值初始化为该值。此行为与 RDS for MySQL 8.0 中的行为不同,其中 AUTO_INCREMENT 值在这些操作过程中将被保留。

二进制日志复制

在 MySQL 8.0 社群版中,预设情况下,二进制日志复制处于开启状态。预设情况下,在 Aurora MySQL 版本 3 中,二进制日志复制处于关闭状态。

提示

如果 Aurora 内置复制功能满足了您的高可用性要求,则可以关闭二进制日志复制。这样,您就可以避免二进制日志复制的性能开销。您还可以避免管理二进制日志复制所需的相关监控和故障排除过程。

Aurora 支持从兼容 MySQL 5.7 的源到 Aurora MySQL 版本 3 的二进制日志复制。源系统可以是 Aurora MySQL 数据库集群、RDS for MySQL 数据库实例或本地 MySQL 实例。

与社群 MySQL 一样,Aurora MySQL 支持从运行特定版本的源复制到运行相同主要版本或更高版本的目标。例如,不支持从兼容 MySQL 5.6 的系统复制到 Aurora MySQL 版本 3。不支持将 Aurora MySQL 版本 3 复制到兼容 MySQL 5.7 的系统或兼容 MySQL 5.6 的系统。有关使用二进制日志复制的详细信息,请参阅 Aurora 与 MySQL 之间或 Aurora 与其他 Aurora 数据库集群之间的复制(二进制日志复制)

Aurora MySQL 版本 3 包括对社群 MySQL 8.0 中二进制日志复制的改进,例如筛选的复制。有关社群 MySQL 8.0 改进的详细信息,请参阅 MySQL 参考手册中的服务器如何评估复制筛选规则

多线程复制

对于 Aurora MySQL 版本 3,Aurora MySQL 支持多线程复制。有关使用信息,请参阅多线程二进制日志复制(Aurora MySQL 版本 3)

注意

我们仍建议不要将多线程复制与 Aurora MySQL 版本 2 结合使用。

二进制日志复制的事务压缩

有关二进制日志压缩的使用信息,请参阅 MySQL 参考手册中的二进制日志事务压缩

以下限制适用于 Aurora MySQL 版本 3 中的二进制日志压缩:

  • 不会压缩其二进制日志数据大于允许的最大数据包大小的事务。无论是否开启 Aurora MySQL 二进制日志压缩设置,都是如此。此类事务在不被压缩的情况下被复制。

  • 如果您使用尚不支持 MySQL 8.0 的更改数据捕获 (CDC) 的连接器,则无法使用此功能。我们建议您使用二进制日志压缩彻底测试任何第三方连接器。此外,我们建议您在对 CDC 使用二进制日志复制的系统上开启二进制日志压缩之前先这样做。