暂时停止 Amazon RDS 数据库实例
可以间歇性地停止数据库实例,来进行临时测试或执行日常开发活动。最常见的使用案例是成本优化。
停止数据库实例的时间因实例类、网络状态、数据库引擎类型和数据库状态等因素而异。此过程可能需要几分钟时间。该服务必须执行以下操作:
-
关闭数据库引擎进程。
-
关闭 RDS 平台进程。
-
分离与数据库实例关联的 EBS 存储卷。
-
终止底层 Amazon EC2 实例。
警告
启动数据库实例需要实例恢复,且可能需要几分钟到几小时的时间。因此,如果担心实例可用性,请谨慎处理临时停止生产实例的事宜。有关更多信息,请参阅 启动之前停止的 Amazon RDS 数据库实例。
要在相同的操作中停止和启动数据库实例,请重启该数据库实例。有关更多信息,请参阅 重启中的数据库实例。
主题
停止数据库实例的使用案例
与创建数据库快照、删除数据库实例、然后在需要访问实例时恢复快照相比,停止和启动数据库实例要更加快速。停止实例的常见使用案例包括:
-
成本优化 – 对于非生产数据库,您可以暂时停止 Amazon RDS 数据库实例以节省资金。实例停止后,您无需为所用数据库实例的小时数付费。
重要
当数据库实例停止后,您需要为预调配的存储(包括预调配 IOPS)付费。您还需要为备份存储付费,包括指定保留时段内的手动快照和自动备份。但是,您无需为所用数据库实例小时数付费。有关更多信息,请参阅账单常见问题
。 -
日常开发 – 如果您出于开发目的维护数据库实例,则可以在需要时启动该实例,然后在不需要时将其关闭。
-
测试 – 您可能需要一个临时数据库实例来测试备份和恢复程序、迁移、应用程序升级或相关活动。在这些使用案例中,您可以在不需要数据库实例时将其停止。
-
培训 – 如果您在 RDS 中进行培训,则可能需要在培训期间启动数据库实例,然后再将其关闭。
支持的数据库引擎、实例类和区域
您可以停止和启动运行以下数据库引擎的 Amazon RDS 数据库实例:
-
Db2
-
MariaDB
-
Microsoft SQL Server,包括 RDS Custom for SQL Server
-
MySQL
-
Oracle
-
PostgreSQL
所有数据库实例类和所有 Amazon 区域都支持停止并启动数据库实例。
停止多可用区部署中的数据库实例
您可以停止和启动多可用区部署中的数据库实例。请注意以下限制:
-
您只能在数据库引擎支持的情况下创建多可用区部署。有关引擎版本的更多信息,请参阅支持 Amazon RDS 中多可用区数据库集群的区域和数据库引擎。
-
RDS for SQL Server 不支持停止多可用区部署中的数据库实例。有关更多信息,请参阅 Microsoft SQL Server 多可用区部署限制、说明和建议。
-
停止数据库实例可能需要较长的时间。如果在上次故障转移之后至少进行了一次备份,那么可以通过执行一次包括故障转移操作的重启来加快停止操作。有关更多信息,请参阅 重启中的数据库实例。
停止数据库实例的工作原理
停止操作分为以下几个阶段:
-
数据库实例启动正常关闭过程。
数据库实例的状态更改为
stopping
。 -
实例停止运行,最多连续 7 天。
数据库实例的状态更改为
stopped
。
已停止数据库实例的特征
处于停止状态时,数据库实例具有以下特征:
-
当您停止数据库实例时,它会保留以下行为:
-
实例 ID
-
域名服务器(DNS)端点
-
参数组
-
安全组
-
选项组
-
Amazon S3 事务日志(时间点还原所必需)
当您重启数据库实例时,它的配置与您停止它时相同。
-
-
所有存储卷仍附加到数据库实例,而且其数据将会保留。RDS 删除存储在数据库实例的 RAM 中的所有数据。
当数据库实例停止后,您需要为预调配的存储(包括预调配 IOPS)付费。您还需要为备份存储付费,包括指定保留时段内的手动快照和自动备份。
-
RDS 将删除待处理的操作(包括计划进行的维护更新),但针对数据库实例的选项组或数据库参数组的待处理操作除外。
注意
有时,RDS for PostgreSQL 数据库实例不会完全关闭。如果发生这种情况,您将看到实例在稍后重启时会经历恢复过程。这是数据库引擎的预期行为,旨在保护数据库完整性。一些基于内存的统计数据和计数器不会保留历史记录,重启后会重新初始化,以便捕获接下来的操作工作负载。
自动重启已停止的数据库实例
如果您的数据库实例在停止连续七天后没有手动启动,RDS 会自动为您启动数据库实例。这样,您的实例就可以及时获得任何所需的维护更新。要了解如何按计划停止和启动您的实例,请参阅如何使用 Step Functions 将 Amazon RDS 实例停止 7 天以上?
停止数据库实例的限制
以下是停止操作的一些限制:
您无法停止具有只读副本或作为只读副本的数据库实例。
您无法修改已停止的数据库实例。
您无法删除与停止的数据库实例关联的选项组。
您无法删除与已停止的数据库实例关联的数据库参数组。
在多可用区部署中,请注意以下限制:
-
无法停止 RDS for SQL Server 数据库实例。
-
在启动数据库实例后,主要可用区和辅助可用区可能会切换。
-
其他限制适用于 RDS Custom for SQL Server。有关更多信息,请参阅 启动和停止 RDS Custom for SQL Server 数据库实例。
选项和参数组注意事项
如果存在与一个选项组关联的数据库实例,则无法从该选项组中删除持久选项 (包括永久选项)。该功能也适用于状态为 stopping
、stopped
或 starting
的任何数据库实例。
您可以更改与已停止的数据库实例关联的选项组或数据库参数组。但是,直到下次启动数据库实例时,才会发生更改。如果您选择立即应用更改,则更改将在您启动数据库实例时生效。否则,更改将在下个维护时段内您启动数据库实例之后才会生效。
公有 IP 地址注意事项
当您停止一个数据库实例时,它将保留其 DNS 端点。如果您停止具有公有 IP 地址的数据库实例,请 Amazon RDS 公开其公有 IP 地址。重新启动数据库实例时,它具有不同的公有 IP 地址。
注意
您应始终使用 DNS 端点而不是 IP 地址来连接到数据库实例。
暂时停止数据库实例:基本步骤
您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 停止数据库。
停止数据库实例
登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Databases (数据库),然后选择要停止的数据库实例。
-
对于 Actions(操作),选择 Stop temporarily(临时停止)。
-
在 Stop DB instance temporarily(临时停止数据库实例)窗口中,选择确认数据库实例将在 7 天后自动重启。
-
(可选)选择 Save the DB instance in a snapshot(在快照中保存数据库实例),然后为 Snapshot name(快照名称)输入快照名称。如果要在停止数据库实例之前创建其快照,请选择此选项。
-
选择 Stop temporarily(临时停止)以停止数据库实例,或选择 Cancel(取消)以取消该操作。
要使用 Amazon CLI 停止数据库实例,请使用以下选项调用 stop-db-instance 命令:
-
--db-instance-identifier
– 数据库实例的名称。
例
aws rds stop-db-instance --db-instance-identifier
mydbinstance
要使用 Amazon RDS API 停止数据库实例,请使用以下参数调用 StopDBInstance 操作:
-
DBInstanceIdentifier
– 数据库实例的名称。