如何排除我在删除 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 控制台中执行以下步骤:

  1. 打开 Amazon RDS 控制台
  2. 从导航窗格中选择数据库,然后选择集群。
  3. 选择操作,然后选择删除集群
    注意:如果删除集群为灰色或不可用,则表示集群内可能存在您必须删除的实例。在这种情况下,请删除集群中的所有实例。使用 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"

  1. 打开 Amazon RDS 控制台
  2. 从导航窗格中选择数据库,然后选择集群。
  3. 选择操作,然后选择修改集群
  4. 选择禁用删除保护,然后选择继续
  5. 选择立即应用

使用 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