迁移到 Aurora Serverless v2 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

迁移到 Aurora Serverless v2

要将现有数据库集群转换为使用 Aurora Serverless v2,您可以执行以下操作:

  • 从预置的 Aurora 数据库集群升级。

  • 从 Aurora Serverless v1 集群升级。

  • 从本地数据库迁移到 Aurora Serverless v2 集群。

当升级后的集群运行 Aurora Serverless v2 的要求和限制中列出的适当引擎版本时,您可以开始在其中添加 Aurora Serverless v2 数据库实例。您添加到升级后的集群的第一个数据库实例必须是预置数据库实例。然后,您可以将写入工作负载、读取工作负载或两者的处理切换到 Aurora Serverless v2 数据库实例。

注意

以下主题介绍如何转换现有数据库集群。有关创建新的 Aurora Serverless v2 数据库集群的信息,请参阅创建一个使用 Aurora Serverless v2 的数据库集群

升级或切换现有集群以使用 Aurora Serverless v2

如果您的预置集群具有支持 Aurora Serverless v2 的引擎版本,则切换到 Aurora Serverless v2 不需要升级。在这种情况下,您可以将 Aurora Serverless v2 数据库实例添加到原始集群。您可以将集群切换为使用所有 Aurora Serverless v2 数据库实例。您还可以在同一个数据库集群中使用 Aurora Serverless v2 和预置数据库实例的组合。对于支持 Aurora Serverless v2 的 Aurora 引擎版本,请参阅 支持 Aurora Serverless v2 的区域和 Aurora 数据库引擎

如果您运行的是不支持 Aurora Serverless v2 的较低引擎版本,则需要采取以下一般步骤:

  1. 升级集群。

  2. 为升级后的集群创建预置写入器数据库实例。

  3. 修改集群以使用 Aurora Serverless v2 数据库实例。

重要

当您使用快照还原或克隆执行主要版本升级,升级到兼容 Aurora Serverless v2 的版本时,添加到新集群中的第一个数据库实例必须是预置数据库实例。这一添加开始了升级过程的最后阶段。

在最后阶段发生之前,集群不具备实现 Aurora Serverless v2 支持所需的基础设施。因此,这些升级后的集群始终从预置写入器数据库实例开始。然后,您可以将预置数据库实例转换为或故障转移到 Aurora Serverless v2 数据库实例。

从 Aurora Serverless v1 升级到 Aurora Serverless v2 的中间步骤包括创建预置集群。然后,执行的升级步骤与从预置集群开始时的升级步骤相同。

升级 MySQL 兼容集群的路径以使用 Aurora Serverless v2

如果您的原始集群正在运行 Aurora MySQL,请根据集群的引擎版本和引擎模式选择适当的程序。

如果您的原始 Aurora MySQL 集群是这样 执行此操作以切换到 Aurora Serverless v2
与 MySQL 8.0 兼容且运行 Aurora MySQL 版本 3 的预置集群

这是来自现有 Aurora MySQL 集群的所有转换的最后阶段。

如有必要,请执行次要版本升级,升级到 3.02.0 或更高版本。为写入器数据库实例使用预置数据库实例。添加一个 Aurora Serverless v2 读取器数据库实例。执行故障转移以使该实例变为写入器数据库实例。

(可选)将集群中的其他预调配数据库实例转换为 Aurora Serverless v2。或者添加新的 Aurora Serverless v2 数据库实例并移除预调配的数据库实例。

有关完整的程序和示例,请参阅从预置集群切换到 Aurora Serverless v2

与 MySQL 5.7 兼容且运行 Aurora MySQL 版本 2 的预置集群 对 Aurora MySQL 版本 3.02.0 或更高版本执行主要版本升级。然后按照 Aurora MySQL 版本 3 的程序将集群切换为使用 Aurora Serverless v2 数据库实例。
与 MySQL 5.7 兼容且运行 Aurora MySQL 版本 2 的 Aurora Serverless v1 集群

为了帮助计划从 Aurora Serverless v1 转换,请先查阅比较 Aurora Serverless v2 和 Aurora Serverless v1

然后,按照从 Aurora Serverless v1 集群升级到 Aurora Serverless v2中的程序进行操作。

升级 PostgreSQL 兼容集群以使用 Aurora Serverless v2 的路径

如果您的原始集群正在运行 Aurora PostgreSQL,请根据集群的引擎版本和引擎模式选择适当的程序。

如果您的原始 Aurora PostgreSQL 集群是这样 执行此操作以切换到 Aurora Serverless v2
运行 Aurora PostgreSQL 版本 13 的预置集群

这是来自现有 Aurora PostgreSQL 集群的所有转换的最后阶段。

如有必要,请执行次要版本升级,升级到 13.6 或更高版本。为写入器数据库实例添加一个预置数据库实例。添加一个 Aurora Serverless v2 读取器数据库实例。执行故障转移以使 Aurora Serverless v2 实例变为写入器数据库实例。

(可选)将集群中的其他预调配数据库实例转换为 Aurora Serverless v2。或者添加新的 Aurora Serverless v2 数据库实例并移除预调配的数据库实例。

有关完整的程序和示例,请参阅从预置集群切换到 Aurora Serverless v2

运行 Aurora PostgreSQL 版本 11 或 12 的预置集群 对 Aurora PostgreSQL 版本 13.6 或更高版本执行主要版本升级。然后按照 Aurora PostgreSQL 版本 13 的程序将集群切换为使用 Aurora Serverless v2 数据库实例。
运行 Aurora PostgreSQL 版本 11 或 13 的 Aurora Serverless v1 集群

为了帮助计划从 Aurora Serverless v1 转换,请先查阅比较 Aurora Serverless v2 和 Aurora Serverless v1

然后,按照从 Aurora Serverless v1 集群升级到 Aurora Serverless v2中的程序进行操作。

从预置集群切换到 Aurora Serverless v2

要将预置集群切换为使用 Aurora Serverless v2,请按照以下步骤操作:

  1. 检查是否需要升级预置集群以与 Aurora Serverless v2 数据库实例一起使用。对于与 Aurora Serverless v2 兼容的 Aurora 版本,请参阅 Aurora Serverless v2 的要求和限制

    如果预置集群运行不适用于 Aurora Serverless v2 的引擎版本,则升级集群的引擎版本:

    • 如果您有与 MySQL 5.7 兼容的预调配集群,请按照 Aurora MySQL 版本 3 的升级说明进行操作。按照如何执行就地升级中的程序进行操作。

    • 如果您有运行 PostgreSQL 版本 11 或 12 且与 PostgreSQL 兼容的预调配集群,请按照 Aurora PostgreSQL 版本 13 的升级说明进行操作。按照如何执行主要版本升级中的程序进行操作。

  2. 配置任何其他集群属性以匹配Aurora Serverless v2 的要求和限制中的 Aurora Serverless v2 要求。

  3. 配置集群的扩缩配置。按照为集群设置 Aurora Serverless v2 容量范围中的程序进行操作。

  4. 将一个或多个 Aurora Serverless v2 数据库实例添加到该集群。按照将 Aurora 副本添加到数据库集群中的常规程序进行操作。对于每个新的数据库实例,在 Amazon Web Services Management Console 中指定特殊的数据库实例类名 Serverless(无服务器),或在 Amazon CLI 或 Amazon RDS API 中指定 db.serverless

    在某些情况下,您的集群中可能已经拥有一个或多个预置读取器数据库实例。如果已经拥有,您可以将其中一个读取器转换为 Aurora Serverless v2 数据库实例,而不是创建新的数据库实例。为此,请按照将预置写入器或读取器转换为 Aurora Serverless v2 中的程序操作。

  5. 执行故障转移操作以使其中一个 Aurora Serverless v2 数据库实例成为集群的写入器数据库实例。

  6. (可选)将任何预置数据库实例转换为 Aurora Serverless v2,或者将其从集群中删除。按照将预置写入器或读取器转换为 Aurora Serverless v2从 Aurora 数据库集群中删除数据库实例中的常规程序进行操作。

    提示

    删除预置数据库实例并非强制操作。您可以设置一个包含 Aurora Serverless v2 数据库实例和预置数据库实例的集群。但是,在您熟悉的 Aurora Serverless v2 数据库实例性能和扩缩特性之前,我们建议您使用相同类型的数据库实例配置集群。

以下 Amazon CLI 示例显示了使用运行 Aurora MySQL 版本 3.02.0 的预置集群的切换过程。该集群名为 mysql-80。集群从两个名为 provisioned-instance-1provisioned-instance-2(一个写入器和一个读取器)的预置数据库实例开始。它们都使用 db.r6g.large 数据库实例类。

$ aws rds describe-db-clusters --db-cluster-identifier mysql-80 \ --query '*[].[DBClusterIdentifier,DBClusterMembers[*].[DBInstanceIdentifier,IsClusterWriter]]' --output text mysql-80 provisioned-instance-2 False provisioned-instance-1 True $ aws rds describe-db-instances --db-instance-identifier provisioned-instance-1 \ --output text --query '*[].[DBInstanceIdentifier,DBInstanceClass]' provisioned-instance-1 db.r6g.large $ aws rds describe-db-instances --db-instance-identifier provisioned-instance-2 \ --output text --query '*[].[DBInstanceIdentifier,DBInstanceClass]' provisioned-instance-2 db.r6g.large

我们创建一个包含一些数据的表。这样,我们就可以确认集群的数据和运营在切换之前和之后是相同的。

mysql> create database serverless_v2_demo; mysql> create table serverless_v2_demo.demo (s varchar(128)); mysql> insert into serverless_v2_demo.demo values ('This cluster started with a provisioned writer.'); Query OK, 1 row affected (0.02 sec)

首先,我们向集群添加容量范围。否则,在向集群添加任何 Aurora Serverless v2 数据库实例时都会出错。如果我们为此程序使用 Amazon Web Services Management Console,那么当我们添加第一个 Aurora Serverless v2 数据库实例时,该步骤是自动的。

$ aws rds create-db-instance --db-instance-identifier serverless-v2-instance-1 \ --db-cluster-identifier mysql-80 --db-instance-class db.serverless --engine aurora-mysql An error occurred (InvalidDBClusterStateFault) when calling the CreateDBInstance operation: Set the Serverless v2 scaling configuration on the parent DB cluster before creating a Serverless v2 DB instance. $ # The blank ServerlessV2ScalingConfiguration attribute confirms that the cluster doesn't have a capacity range set yet. $ aws rds describe-db-clusters --db-cluster-identifier mysql-80 --query 'DBClusters[*].ServerlessV2ScalingConfiguration' [] $ aws rds modify-db-cluster --db-cluster-identifier mysql-80 \ --serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=16 { "DBClusterIdentifier": "mysql-80", "ServerlessV2ScalingConfiguration": { "MinCapacity": 0.5, "MaxCapacity": 16 } }

我们创建了两个 Aurora Serverless v2 读取器来取代原始数据库实例。我们通过为新的数据库实例指定 db.serverless 数据库实例类来实现。

$ aws rds create-db-instance --db-instance-identifier serverless-v2-instance-1 --db-cluster-identifier mysql-80 --db-instance-class db.serverless --engine aurora-mysql { "DBInstanceIdentifier": "serverless-v2-instance-1", "DBClusterIdentifier": "mysql-80", "DBInstanceClass": "db.serverless", "DBInstanceStatus": "creating" } $ aws rds create-db-instance --db-instance-identifier serverless-v2-instance-2 \ --db-cluster-identifier mysql-80 --db-instance-class db.serverless --engine aurora-mysql { "DBInstanceIdentifier": "serverless-v2-instance-2", "DBClusterIdentifier": "mysql-80", "DBInstanceClass": "db.serverless", "DBInstanceStatus": "creating" } $ # Wait for both DB instances to finish being created before proceeding. $ aws rds wait db-instance-available --db-instance-identifier serverless-v2-instance-1 && \ aws rds wait db-instance-available --db-instance-identifier serverless-v2-instance-2

我们执行故障转移以使其中一个 Aurora Serverless v2 数据库实例成为集群的新写入器。

$ aws rds failover-db-cluster --db-cluster-identifier mysql-80 \ --target-db-instance-identifier serverless-v2-instance-1 { "DBClusterIdentifier": "mysql-80", "DBClusterMembers": [ { "DBInstanceIdentifier": "serverless-v2-instance-1", "IsClusterWriter": false, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 }, { "DBInstanceIdentifier": "serverless-v2-instance-2", "IsClusterWriter": false, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 }, { "DBInstanceIdentifier": "provisioned-instance-2", "IsClusterWriter": false, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 }, { "DBInstanceIdentifier": "provisioned-instance-1", "IsClusterWriter": true, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 } ], "Status": "available" }

此更改需要几秒钟才能生效。这是,我们有了一个 Aurora Serverless v2 写入器和一个 Aurora Serverless v2 读取器。因此,我们不需要任何一个原始预置数据库实例。

$ aws rds describe-db-clusters --db-cluster-identifier mysql-80 \ --query '*[].[DBClusterIdentifier,DBClusterMembers[*].[DBInstanceIdentifier,IsClusterWriter]]' \ --output text mysql-80 serverless-v2-instance-1 True serverless-v2-instance-2 False provisioned-instance-2 False provisioned-instance-1 False

切换程序的最后一步是删除两个预置数据库实例。

$ aws rds delete-db-instance --db-instance-identifier provisioned-instance-2 --skip-final-snapshot { "DBInstanceIdentifier": "provisioned-instance-2", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.02.0", "DBInstanceClass": "db.r6g.large" } $ aws rds delete-db-instance --db-instance-identifier provisioned-instance-1 --skip-final-snapshot { "DBInstanceIdentifier": "provisioned-instance-1", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.02.0", "DBInstanceClass": "db.r6g.large" }

在最终检查时,我们确认原始表可以从 Aurora Serverless v2 写入器数据库实例访问和写入。

mysql> select * from serverless_v2_demo.demo; +---------------------------------------------------+ | s | +---------------------------------------------------+ | This cluster started with a provisioned writer. | +---------------------------------------------------+ 1 row in set (0.00 sec) mysql> insert into serverless_v2_demo.demo values ('And it finished with a Serverless v2 writer.'); Query OK, 1 row affected (0.01 sec) mysql> select * from serverless_v2_demo.demo; +---------------------------------------------------+ | s | +---------------------------------------------------+ | This cluster started with a provisioned writer. | | And it finished with a Serverless v2 writer. | +---------------------------------------------------+ 2 rows in set (0.01 sec)

我们还连接到 Aurora Serverless v2 读取器数据库实例并确认新写入的数据也在那里提供。

mysql> select * from serverless_v2_demo.demo; +---------------------------------------------------+ | s | +---------------------------------------------------+ | This cluster started with a provisioned writer. | | And it finished with a Serverless v2 writer. | +---------------------------------------------------+ 2 rows in set (0.01 sec)

比较 Aurora Serverless v2 和 Aurora Serverless v1

如果您已在使用 Aurora Serverless v1,您可以了解 Aurora Serverless v1 和 Aurora Serverless v2 之间的主要区别。架构差异(例如对读取器数据库实例的支持)开辟了新的使用场景类型。

您可以使用下表来帮助了解 Aurora Serverless v2 和 Aurora Serverless v1 之间的最重要区别。

Aurora Serverless v2 和 Aurora Serverless v1 要求的比较

下表总结了使用 Aurora Serverless v2 或 Aurora Serverless v1 运行数据库的不同要求。与 Aurora Serverless v1 相比,Aurora Serverless v2 提供更高版本的 Aurora MySQL 和 Aurora PostgreSQL 数据库引擎。

功能 Aurora Serverless v2 要求 Aurora Serverless v1 要求
数据库引擎 Aurora MySQL 和 Aurora PostgreSQL Aurora MySQL 和 Aurora PostgreSQL
支持的 Aurora MySQL 版本 请参阅 适用于 Aurora MySQL 的 Aurora Serverless v2 请参阅 适用于 Aurora MySQL 的 Aurora Serverless v1
支持的 Aurora PostgreSQL 版本 请参阅 适用于 Aurora PostgreSQL 的 Aurora Serverless v2 请参阅 适用于 Aurora PostgreSQL 的 Aurora Serverless v1
升级数据库集群

与预调配的数据库集群类似,您可以手动执行升级,无需等待 Aurora 为您升级数据库集群。有关更多信息,请参阅 修改 Amazon Aurora 数据库集群

注意

要对与 Aurora PostgreSQL 兼容的数据库集群执行从 13.x 到 14.x 或 15.x 的主要版本升级,集群的最大容量必须至少为 2 个 ACU。

次要版本升级将在可用时自动应用。有关更多信息,请参阅 Aurora Serverless v1 和 Aurora 数据库引擎版本

您可以手动执行主要版本升级。有关更多信息,请参阅 修改 Aurora Serverless v1 数据库集群

从预调配数据库集群进行转换 您可以使用以下方法:
  • 将一个或多个 Aurora Serverless v2 读取器数据库实例添加到现有预置集群。要为写入器使用 Aurora Serverless v2,请指定到其中一个 Aurora Serverless v2 数据库实例的故障转移。为了让整个集群使用 Aurora Serverless v2 数据库实例,在将 Aurora Serverless v2 数据库实例提升为写入器之后删除任何预置写入器数据库实例。

  • 使用适当的数据库引擎和引擎版本创建新集群。使用任何标准方法。例如,还原集群快照或创建现有集群的克隆。为新集群中的部分或全部数据库实例选择 Aurora Serverless v2。

    如果通过克隆创建新集群,则无法同时升级引擎版本。确保原始集群已经运行与 Aurora Serverless v2 兼容的引擎版本。

还原预置集群的快照以创建新的 Aurora Serverless v1 集群。
从 Aurora Serverless v1 集群进行转换 按照从 Aurora Serverless v1 集群升级到 Aurora Serverless v2中的程序进行操作。 不适用
可用的数据库实例类 特殊数据库实例类 db.serverless。在 Amazon Web Services Management Console 中,它的名称为 Serverless(无服务器)。 不适用。Aurora Serverless v1 使用 serverless 引擎模式。
端口 与 MySQL 或 PostgreSQL 兼容的任何端口 仅限默认 MySQL 或 PostgreSQL 端口
是否允许公有 IP 地址? 不支持
是否需要 Virtual Private Cloud(VPC)? 是。每个 Aurora Serverless v1 集群占用分配给您的 VPC 的 2 个接口和网关负载均衡器端点。

Aurora Serverless v2 和 Aurora Serverless v1 扩缩和可用性的比较

下表汇总了 Aurora Serverless v2 和 Aurora Serverless v1 在可扩展性和可用性方面的区别。

与 Aurora Serverless v1 中的扩缩相比,Aurora Serverless v2 扩缩响应速度更快、更精细、中断更少。Aurora Serverless v2 可以通过更改数据库实例的大小和通过向数据库集群添加更多数据库实例来扩缩。也可以通过向 Aurora 全局数据库添加其他 Amazon Web Services 区域中的集群来扩缩。相比之下,Aurora Serverless v1 只能通过增大或减小写入器的容量来扩缩。Aurora Serverless v1 集群的所有计算在单个可用区和单个 Amazon Web Services 区域中运行。

扩展和高可用性功能 Aurora Serverless v2 行为 Aurora Serverless v1 行为
最小 Aurora 容量单位(ACU)(Aurora MySQL) 0.5 集群运行时为 1,集群暂停时为 0。
最小 ACU(Aurora PostgreSQL) 0.5 集群运行时为 2,集群暂停时为 0。
最大 ACU(Aurora MySQL) 128 256
最大 ACU(Aurora PostgreSQL) 128 384
停止集群 您可以通过使用与预置集群相同的集群停止和启动功能手动停止和启动集群。 超时后,集群会自动暂停。活动恢复后需要一段时间才能变得可用。
数据库实例的扩缩 以 0.5 ACU 的最小增量纵向扩展和缩减。 通过使 ACU 翻倍或减半来纵向扩展和缩减。
数据库实例数 与预置集群相同:1 个写入器数据库实例,最多 15 个读取器数据库实例。 1 个同时处理读取和写入的数据库实例。
当 SQL 语句正在运行时是否可以进行扩缩? 可以。Aurora Serverless v2 不需要等待安静点。 不可以。例如,扩缩会等待长时间运行的事务、临时表和表锁定完成。
读取器数据库实例与写入器一起扩缩 可选。 不适用。
最大存储空间 128 TiB 128 TiB 或 64 TiB,具体取决于数据库引擎和版本。
扩缩时保留缓冲区缓存 是。缓冲区缓存会动态调整大小。 否。缓冲区缓存在扩缩后重新调整。
失效转移 是,与预置集群相同。 仅尽最大努力,取决于容量供应情况。比在 Aurora Serverless v2 中更慢。
多可用区功能 是,与预置集群相同。多可用区集群需要在第二个可用区(AZ)中有读取器数据库实例。对于多可用区集群,Aurora 在发生可用区故障时执行多可用区故障转移。 Aurora Serverless v1 集群在一个可用区中运行所有计算。在可用区出现故障时的恢复为仅尽最大努力,并取决于容量供应情况。
Aurora 全局数据库 不支持
根据内存压力进行扩缩 不支持
根据 CPU 负载进行扩缩 支持
根据网络流量进行扩缩 是,基于网络流量的内存和 CPU 开销。max_connections 参数保持不变,以避免在缩减时断开连接。 是,基于连接数。
扩缩事件的超时操作
通过 Amazon Auto Scaling 向集群添加新的数据库实例 不适用。您可以在提升层 2-15 中创建 Aurora Serverless v2 读取器数据库实例,并将其缩减至低容量。 否。读取器数据库实例不可用。

Aurora Serverless v2 和 Aurora Serverless v1 功能支持的比较

下表对支持进行了汇总:

  • 在 Aurora Serverless v2 中提供但在 Aurora Serverless v1 中不提供的功能

  • 在 Aurora Serverless v1 和 Aurora Serverless v2 中以不同方式运行的功能

  • 目前在 Aurora Serverless v2 中不可用的功能

Aurora Serverless v2 包括来自预置集群但不可用于 Aurora Serverless v1 的功能。

功能 Aurora Serverless v2 支持 Aurora Serverless v1 支持
集群拓扑 Aurora Serverless v2 是单个数据库实例的属性。一个集群可以包含多个 Aurora Serverless v2 数据库实例,或者包含 Aurora Serverless v2 和预置数据库实例的组合。 Aurora Serverless v1 集群不使用数据库实例的概念。创建集群之后不能更改 Aurora Serverless v1 属性。
配置参数 几乎所有相同参数都可以像在预置集群中一样进行修改。有关详细信息,请参阅使用 Aurora Serverless v2 的参数组 只可以修改参数的一个子集。
参数组 集群参数组和数据库参数组。提供在 SupportedEngineModes 属性中具有 provisioned 值的参数。这比 Aurora Serverless v1 中的参数多得多。 仅集群参数组。提供在 SupportedEngineModes 属性中具有 serverless 值的参数。
集群卷的加密 可选 必需。Amazon Aurora 加密的数据库集群的限制 中的限制适用于所有 Aurora Serverless v1 集群。
跨区域快照 必须使用自己的 Amazon Key Management Service(Amazon KMS)密钥进行加密的快照。
删除数据库集群后保留自动备份 不支持
TLS/SSL 是。支持与预置集群的支持相同。有关使用信息,请参阅将 TLS/SSL 与 Aurora Serverless v2 结合使用 是。对预置集群的 TLS 支持有一些不同之处。有关使用信息,请参阅将 TLS/SSL 与 Aurora Serverless v1 结合使用
克隆 仅限克隆到与 Aurora Serverless v2 兼容的数据库引擎版本和从这个版本克隆。您不能使用克隆从 Aurora Serverless v1 或从早期版本的预置集群升级。 仅限克隆到与 Aurora Serverless v1 兼容的数据库引擎版本和从这个版本克隆。
与 Amazon S3 集成 支持
与 Amazon Secrets Manager 集成
将数据库集群快照导出到 S3 不支持
关联 IAM 角色 不支持
将日志上传到 Amazon CloudWatch 可选。您可以选择要打开的日志以及要上传到 CloudWatch 的日志。 打开的所有日志都会自动上传到 CloudWatch。
可用的数据 API 支持
查询编辑器可用 支持
Performance Insights 不支持
Amazon RDS 代理可用 不支持
提供了适用于 Aurora PostgreSQL 的 Babelfish 是。对于同时与 Babelfish 和 Aurora Serverless v2 兼容的 Aurora PostgreSQL 版本,支持此功能。

使 Aurora Serverless v1 使用案例适应 Aurora Serverless v2

根据您的 Aurora Serverless v1 使用案例,您可以按如下方式调整这种方法以利用 Aurora Serverless v2 功能。

假设您有一个负载较轻的 Aurora Serverless v1 集群,您的首要任务是保持持续可用性,同时更大限度地降低成本。借助 Aurora Serverless v2,您可以配置一个较小的最小 ACU 设置,即 0.5 ACU,而与之相比,Aurora Serverless v1 最小为 1 ACU。您可以通过创建多可用区配置来提高可用性,读取器数据库实例也可以设置为最小 0.5 ACU。

假设您有一个在开发和测试场景中使用的 Aurora Serverless v1 集群。在这种情况下,成本也是一个优先考虑的问题,但集群并不需要始终可用。目前,当集群完全空闲时 Aurora Serverless v2 不会自动暂停。相反,您可以在不需要集群时手动停止集群,并在下一个测试或开发周期启动集群。

假设您有一个工作负载繁重的 Aurora Serverless v1 集群。使用 Aurora Serverless v2 的等效集群可以更精细地扩缩。例如,Aurora Serverless v1 通过将容量翻倍来扩展,例如从 64 个 ACU 增加到 128 个 ACU。相比之下,Aurora Serverless v2 数据库实例可以扩展到这些数字之间的某个值。

假设您的工作负载需要的总容量高于 Aurora Serverless v1 中的可用容量。您可以使用多个 Aurora Serverless v2 读取器数据库实例,从写入器数据库实例中分流工作负载的读取密集型部分。您还可以将读取密集型工作负载划分到多个读取器数据库实例。

对于写入密集型工作负载,您可以将带有大型预调配数据库实例的集群配置为写入器。为此,您可以结合使用一个或多个 Aurora Serverless v2 读取器数据库实例。

从 Aurora Serverless v1 集群升级到 Aurora Serverless v2

将数据库集群从 Aurora Serverless v1 升级到 Aurora Serverless v2 的过程具有多个步骤。那是因为您无法直接从 Aurora Serverless v1 转换为 Aurora Serverless v2。始终有一个中间步骤涉及将 Aurora Serverless v1 数据库集群转换为预调配集群。

与 Aurora MySQL 兼容的数据库集群

您可以将 Aurora Serverless v1 数据库集群转换为预调配数据库集群,然后使用蓝绿部署对其进行升级并将其转换为 Aurora Serverless v2 数据库集群。我们建议将此过程用于生产环境。有关更多信息,请参阅 使用 Amazon RDS 蓝绿部署进行数据库更新

使用蓝绿部署升级运行 Aurora MySQL 版本 2(与 MySQL 5.7 兼容)的 Aurora Serverless v1 集群
  1. 将 Aurora Serverless v1 数据库集群转换为预调配的 Aurora MySQL 版本 2 集群。按照从 Aurora Serverless v1 转换为预置中的程序进行操作。

  2. 创建蓝绿部署。按照创建蓝绿部署中的程序进行操作。

  3. 为绿色集群选择一个与 Aurora Serverless v2 兼容的 Aurora MySQL 版本,例如 3.04.1。

    有关兼容版本,请参阅 适用于 Aurora MySQL 的 Aurora Serverless v2

  4. 修改绿色数据库集群的写入器数据库实例,以使用 Serverless v2(db.serverless)数据库实例类。

    有关详细信息,请参阅将预置写入器或读取器转换为 Aurora Serverless v2

  5. 升级后的 Aurora Serverless v2 数据库集群可用时,从蓝色集群切换到绿色集群。

从本地数据库迁移到 Aurora Serverless v2

您可以将本地数据库迁移到 Aurora Serverless v2,就像预调配的 Aurora MySQL 和 Aurora PostgreSQL 一样。