Aurora DSQL 集群生命周期
了解 Aurora DSQL 集群生命周期有助于高效管理集群。本章介绍了集群状态定义与可优化成本的缩容至零功能。
定义 Aurora DSQL 集群状态
Aurora DSQL 集群状态提供有关集群运行状况和连接的重要信息。可以使用 AWS 管理控制台、AWS CLI 或 Aurora DSQL API 查看集群和集群实例的状态。
下表描述了 Aurora DSQL 集群的每种可能状态以及每种状态的含义。
| Status | 描述 |
|---|---|
| Creating | Aurora DSQL 正在尝试为集群创建或配置资源。当集群处于这种状态时,任何连接尝试都将失败。 |
| 活动 | 集群正在运行,可供使用。 |
| Idle | 当集群闲置时间足够长,促使 Aurora DSQL 缩减运行中的资源以降低容量和成本时,集群将变为空闲状态。当您连接到空闲的集群时,Aurora DSQL 会将集群转换回活跃状态。 |
| 非活动 | 当空闲集群上长时间没有活动时,该集群将变为非活动状态。在此暂停状态下,运行中的资源会缩容至零,但您的数据将保留。当您尝试连接到非活跃的集群时,Aurora DSQL 会自动将该集群转换回活跃状态。恢复时间取决于集群大小。 |
| Updating | 当您更改集群配置时,集群会变为正在更新状态。 |
| 删除 | 当您提交删除集群请求时,集群会变为正在删除状态。 |
| 已删除 | 已成功删除了集群。 |
| 失败 | Aurora DSQL 无法创建集群,因为它遇到了错误。 |
| 待设置 | 仅适用于多区域集群。当您在带有见证区域的第一个区域中创建多区域集群时,多区域集群将进入待设置状态。集群创建将暂停,直到您在辅助区域中创建另一个集群并使这两个集群对等。 |
| 待删除 | 仅适用于多区域集群。当您从多区域集群中删除某个集群时,多区域集群会进入待删除状态。一旦您删除最后一个对等集群,多区域集群就会变为正在删除状态。 |
使用空闲集群和非活动集群
当 Aurora DSQL 检测到集群在一段时间内无连接活动时,它会将集群切换至空闲状态,并减少运行中的资源以最大限度地降低容量与成本。如果集群长时间无连接活动,空闲集群将自动切换至非活动状态,此时运行中的资源将缩容至零,但您的数据将保留。
要恢复正常操作,只需像往常一样连接到集群即可。当您成功连接到集群时,Aurora DSQL 会自动将该集群切换至活动状态。
注意
首次尝试连接到空闲或非活动集群时,连接速度会比平时慢。
要求集群处于活动状态才能执行的操作
某些操作要求您的集群处于活动状态。要在空闲或非活动集群上执行这些操作,您只需连接到集群即可将集群切换回活动状态。
备份操作
要求集群处于活动状态才能执行备份操作。如果集群处于空闲或非活动状态,则备份操作将失败,并显示以下错误:
"Error": { "Code": "FailedPrecondition", "Message": "Cluster 'cluster-id' is in state 'IDLE' and cannot be backed up. In order to take a backup of your cluster, it must be in Active state. Please connect to your cluster to transition it to Active to perform the backup." }
要继续进行备份,请执行以下操作:
-
使用首选数据库客户端或 Aurora DSQL 控制台连接到集群以将其唤醒。
-
等待自动切换至活动状态。
-
在集群完全运行正常后,启动备份操作。
注意
在集群切换至空闲状态或非活动状态之前创建的现有备份仍有效且不受影响。在连接到集群以实施自动唤醒前,尝试在集群上创建新备份的操作将失败。
查看 Aurora DSQL 集群状态
要查看集群的状态,请使用 AWS 管理控制台、AWS CLI 或 Aurora DSQL API。
按照以下步骤在 AWS 管理控制台中查看集群状态:
在控制台中查看集群状态
-
打开 Aurora DSQL 控制台,网址为 https://console.aws.amazon.com/dsql
。 -
在导航窗格中选择 Clusters (集群)。
-
在控制面板中查看每个集群的状态。
运行以下 AWS CLI 命令来检查单个集群的状态。
aws dsql get-cluster --identifiercluster-id--query status --output text
运行以下命令以列出所有集群的状态。
for id in $(aws dsql list-clusters --query 'clusters[*].identifier' --output text); do cluster_status=$(aws dsql get-cluster --identifier "$id" --query 'status' --output text) echo "$id $cluster_status" done
此示例输出显示了两个活跃的集群和一个正在删除的集群。
aaabbb2bkx555xa7p42qd5cdef ACTIVE abcde123efghi77t35abcdefgh ACTIVE 12abc6lqasc5bbbbbbbbbbbbbb DELETING