如何排除我在删除 Amazon Aurora 集群时收到的错误?
上次更新日期:2021 年 2 月 9 日
我想删除一个 Amazon Aurora 集群,但:
-
我收到了一条错误消息。
- 或者 -
在 Amazon Relational Database Service (Amazon RDS) 控制台中,删除选项不可用(显示为灰色)。
我如何排查此问题并删除集群?
简短描述
您可以使用 Amazon RDS 控制台或 AWS 命令行界面 (AWS CLI) 来删除 Amazon Aurora 集群。有关更多信息,请参阅删除数据库实例。
要使用 AWS CLI 删除 Aurora 集群,请先删除集群中的所有数据库实例。删除集群中的所有数据库实例后,您可以使用 delete-db-cluster 删除集群。如果您使用 Amazon RDS 控制台删除集群中的最后一个数据库实例,则会自动删除空集群。
解决方法
注意:如果在运行 AWS CLI 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
在删除集群之前,请注意以下事项:
- 如果您的集群只有一个数据库实例且您使用 Amazon RDS 控制台删除该数据库实例,则该数据库实例和集群都将被删除。
- 如果您的集群有一个写入器实例和一个或多个读取器实例/只读副本且您删除了读取器实例,则写入器实例和集群不受影响。如果删除写入器实例,则读取器实例将自动提升为写入器。此故障转移操作会导致停机。
使用 Amazon RDS 控制台删除其中没有实例的 Aurora 集群
在 Amazon RDS 控制台中执行以下步骤:
- 打开 Amazon RDS 控制台。
- 从导航窗格中选择数据库,然后选择集群。
- 选择操作,然后选择删除集群。
注意:如果删除集群为灰色或不可用,则表示集群内可能存在您必须删除的实例。在这种情况下,请删除集群中的所有实例。使用 Amazon RDS 控制台删除集群中的最后一个实例时,则也会自动删除该集群。
如果您收到以下错误,请按照下述步骤操作。
"This database has deletion protection option enabled, to be able to delete the last Aurora DB instance, modify the Aurora cluster and disable deletion protection"
- 打开 Amazon RDS 控制台。
- 从导航窗格中选择数据库,然后选择集群。
- 选择操作,然后选择修改集群。
- 选择禁用删除保护,然后选择继续。
- 选择立即应用。
使用 AWS CLI 删除 Aurora 集群
注意:以下步骤适用于 Aurora MySQL 和 Aurora PostgreSQL。
1. 删除 Aurora 集群
运行以下命令:
aws rds delete-db-cluster --db-cluster-identifier sample-cluster --final-db-snapshot-identifier mydbinstancefinal
此命令将删除集群,然后拍摄最终的数据库集群快照。如果您不想拍摄最终快照,请在运行此命令时使用 ---skip-final-snapshot 选项。运行此命令时可能会收到以下错误:
"An error occurred (InvalidDBClusterStateFault) when calling the DeleteDBCluster operation: Cluster cannot be deleted, it still contains DB instances in non-deleting state"
此错误表示无法删除集群,因为集群中存在实例。请确保删除与该集群关联的所有实例,然后才能删除该集群。
2. 删除集群中的实例
运行以下命令:
aws rds delete-db-instance --db-instance-identifier sample-instance
尝试删除集群中的实例时,您可能会收到以下错误消息之一。
-
"InvalidParameterCombination: An error occurred (InvalidParameterCombination) when calling the DeleteDBInstance operation: FinalDBSnapshotIdentifier cannot be specified when deleting a cluster instance"
当您运行使用 --final-db-snapshot-identifier 选项的命令删除集群中的实例时,就会收到此错误。此错误警告您,在删除集群中的实例时,您无法拍摄最终快照。删除 --final-db-snapshot-identifier 选项或使用 --skip-final-snapshot 选项,然后再次运行该命令。
-
"InvalidDBClusterStateFault: Cannot delete the last instance of the read replica DB cluster.Promote the DB cluster to a standalone DB cluster in order to delete it”
此错误表示您尝试删除的 Aurora 集群正在充当副本,但在集群提升为独立集群之前,无法删除该集群的最后一个实例。
3. 提升副本集群
通过运行以下命令提升副本集群:
aws rds promote-read-replica-db-cluster --db-cluster-identifier rds-mysql-aurora-replica-cluster