Excluir clusters de banco de dados e instâncias de banco de dados do Aurora - Amazon Aurora

Excluir clusters de banco de dados e instâncias de banco de dados do Aurora

Será possível excluir um cluster de banco de dados do Aurora quando não for mais necessário. A exclusão do cluster remove o volume do cluster que contém todos os seus dados. Antes de excluir o cluster, você pode salvar um instantâneo de seus dados. Você pode restaurar o snapshot posteriormente e criar um cluster com os mesmos dados.

Você também pode excluir instâncias de banco de dados de um cluster e preservar o próprio cluster e os dados que ele contém. A exclusão de instâncias de banco de dados poderá ajudar a reduzir as cobranças se o cluster não estiver ocupado ou você não precisar da capacidade computacional de várias instâncias de banco de dados.

Excluir um cluster de banco de dados do Aurora

O Aurora não fornece um método de etapa única para excluir um cluster de banco de dados. Essa opção de design se destina a evitar que você perca dados ou deixe sua aplicação offline acidentalmente. As aplicações do Aurora geralmente são essenciais à missão e exigem alta disponibilidade. Assim, o Aurora facilita escalar a capacidade do cluster acrescentando e removendo instâncias de banco de dados. A remoção do cluster de banco de dados em si requer que você faça uma exclusão separada.

Use o procedimento geral a seguir para remover todas as instâncias de banco de dados de um cluster e então excluir o próprio cluster.

  1. Exclua todas as instâncias do leitor no cluster. Use o procedimento em Excluir uma instância de banco de dados de um cluster de banco de dados do Aurora.

    Se o cluster tiver alguma instância do leitor, excluir uma das instâncias apenas reduzirá a capacidade computacional do cluster. A exclusão das instâncias de leitor garante primeiro que o cluster permaneça disponível durante todo o procedimento e não execute operações de failover desnecessárias.

  2. Exclua a instância do gravador do cluster. Use novamente o procedimento em Excluir uma instância de banco de dados de um cluster de banco de dados do Aurora.

    Quando você exclui as instâncias de banco de dados, o cluster e o volume do cluster associado permanecem mesmo após a exclusão de todas as respectivas instâncias.

  3. Exclua o cluster de banco de dados.

    • AWS Management Console: selecione o cluster e escolha Excluir do menu Ações. Você pode escolher as seguintes opções para preservar os dados do cluster caso precise deles posteriormente:

      • Crie um snapshot final do volume do cluster. A configuração padrão é criar um snapshot final.

      • Reter backups automatizados. A configuração padrão é não reter backups automatizados.

        nota

        Os backups automatizados para clusters de banco de dados do Aurora Serverless v1 não são retidos.

      O Aurora também pede para você confirmar que pretende excluir o cluster.

    • CLI e API: chame o comando delete-db-cluster da CLI ou a operação de API DeleteDBCluster. Você pode escolher as seguintes opções para preservar os dados do cluster caso precise deles posteriormente:

      • Crie um snapshot final do volume do cluster.

      • Reter backups automatizados.

        nota

        Os backups automatizados para clusters de banco de dados do Aurora Serverless v1 não são retidos.

Excluir um cluster do Aurora vazio

Você pode excluir um cluster de banco de dados vazio usando oAWS Management Console, a AWS CLI ou a API do Amazon RDS.

dica

É possível manter um cluster sem instâncias de banco de dados para preservar seus dados sem incorrer em cobranças de CPU pelo cluster. Comece a usar rapidamente o cluster novamente criando uma ou mais instâncias novas de banco de dados para o cluster. Você pode executar operações administrativas específicas do Aurora no cluster enquanto ele não tiver nenhuma instância de banco de dados associada. Você só não pode acessar os dados ou executar quaisquer operações que exijam a conexão a uma instância de banco de dados.

Para excluir um cluster de banco de dados
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Bancos de dados e o cluster de banco de dados que você deseja excluir.

  3. Em Ações, escolha Excluir.

  4. Para criar um snapshot de banco de dados final para o cluster de banco de dados, escolha Criar snapshot final?. Essa é a configuração padrão.

  5. Se você optar por criar um snapshot final, insira o Final snapshot name (Nome do snapshot final).

  6. Para reter backups automatizados, escolha Retain automated backups (Reter backups automatizados). Essa não é a configuração padrão.

  7. Digite delete me na caixa.

  8. Escolha Delete (Excluir).

Para excluir um cluster de banco de dados do Aurora vazio usando a AWS CLI, chame o comando delete-db-cluster.

Suponha que o cluster vazio deleteme-zero-instances foi usado apenas para desenvolvimento e teste e não contenha dados importantes. Nesse caso, você não precisa preservar um snapshot do volume instância do banco de dados primárior ao excluir o cluster. O exemplo a seguir demonstra que um cluster não contém nenhuma instância de banco de dados e, depois, exclui o cluster vazio sem criar um snapshot final nem reter backups automatizados.

$ aws rds describe-db-clusters --db-cluster-identifier deleteme-zero-instances --output text \ --query '*[].["Cluster:",DBClusterIdentifier,DBClusterMembers[*].["Instance:",DBInstanceIdentifier,IsClusterWriter]] Cluster: deleteme-zero-instances $ aws rds delete-db-cluster --db-cluster-identifier deleteme-zero-instances \ --skip-final-snapshot \ --delete-automated-backups { "DBClusterIdentifier": "deleteme-zero-instances", "Status": "available", "Engine": "aurora-mysql" }

Para excluir um cluster de banco de dados vazio do Aurora usando a API do Amazon RDS, chame a operação de API DeleteDBCluster.

Excluir um cluster do Aurora com uma única instância de banco de dados

Você pode excluir a última instância de banco de dados mesmo que o cluster de banco de dados tenha proteção contra exclusão habilitada. Nesse caso, o cluster de banco de dados propriamente dito ainda existirá, e seus dados serão preservados. Para acessar esses dados novamente, conecte uma nova instância de banco de dados ao cluster.

O exemplo a seguir mostra como o comando delete-db-cluster não funciona quando o cluster ainda tem quaisquer instâncias de banco de dados associadas. Esse cluster tem uma instância de banco de dados de gravador único. Quando examinamos as instâncias de banco de dados no cluster, verificamos o atributo IsClusterWriter de cada uma. O cluster pode ter zero ou uma instância de banco de dados de gravador. Um valor true significa uma instância de banco de dados de gravador. Um valor false significa uma instância de banco de dados de leitor. O cluster pode ter zero, uma ou várias instâncias de banco de dados de leitor. Nesse caso, excluímos a instância de banco de dados de gravador usando o comando delete-db-instance. Assim que a instância de banco de dados entrar no estado deleting, podemos excluir o cluster também. Para este exemplo também, suponha que o cluster não contenha dados que valham a pena preservar. Portanto, não criamos um snapshot do volume do cluster nem retemos backups automatizados.

$ aws rds delete-db-cluster --db-cluster-identifier deleteme-writer-only --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. $ aws rds describe-db-clusters --db-cluster-identifier deleteme-writer-only \ --query '*[].[DBClusterIdentifier,Status,DBClusterMembers[*].[DBInstanceIdentifier,IsClusterWriter]]' [ [ "deleteme-writer-only", "available", [ [ "instance-2130", true ] ] ] ] $ aws rds delete-db-instance --db-instance-identifier instance-2130 { "DBInstanceIdentifier": "instance-2130", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-cluster --db-cluster-identifier deleteme-writer-only \ --skip-final-snapshot \ --delete-automated-backups { "DBClusterIdentifier": "deleteme-writer-only", "Status": "available", "Engine": "aurora-mysql" }

Excluir um cluster do Aurora com várias instâncias de banco de dados

Se o cluster contém várias instâncias de banco de dados, normalmente há uma única instância de gravador e uma ou mais instâncias de leitor. As instâncias de leitor ajudam com a alta disponibilidade por ficarem em espera para assumir se a instância de gravador encontrar um problema. Também é possível usar instâncias de leitor para dimensionar o cluster a fim de lidar com uma workload com uso intenso de leitura sem sobrecarregar a instância de gravador.

Para excluir um cluster com várias instâncias de banco de dados de leitor, exclua as instâncias de leitor primeiro e, em seguida, a instância de gravador. A exclusão das instâncias de gravador deixa o cluster e os respectivos dados intocados. Você exclui o cluster por meio de uma ação separada.

Este exemplo da CLI mostra como excluir um cluster que contém uma instância de banco de dados de gravador e uma única instância de banco de dados de leitor. A saída de describe-db-clusters mostra que instance-7384 é a instância de gravador e instance-1039 é a instância de leitor. No exemplo, a instância de leitor é excluída primeiro porque a exclusão da instância de gravador enquanto ainda existe uma instância de leitor causaria uma operação de failover. Não faz sentido promover a instância de leitor para uma instância de gravador se você planeja excluí-la também. Novamente, suponha que essas instâncias db.t2.small sejam usadas apenas para desenvolvimento e teste. Desse modo, a operação de exclusão ignora o snapshot final e não retém backups automatizados.

$ aws rds delete-db-cluster --db-cluster-identifier deleteme-writer-and-reader --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. $ aws rds describe-db-clusters --db-cluster-identifier deleteme-writer-and-reader --output text \ --query '*[].["Cluster:",DBClusterIdentifier,DBClusterMembers[*].["Instance:",DBInstanceIdentifier,IsClusterWriter]] Cluster: deleteme-writer-and-reader Instance: instance-1039 False Instance: instance-7384 True $ aws rds delete-db-instance --db-instance-identifier instance-1039 { "DBInstanceIdentifier": "instance-1039", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-instance --db-instance-identifier instance-7384 { "DBInstanceIdentifier": "instance-7384", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-cluster --db-cluster-identifier deleteme-writer-and-reader \ --skip-final-snapshot \ --delete-automated-backups { "DBClusterIdentifier": "deleteme-writer-and-reader", "Status": "available", "Engine": "aurora-mysql" }

O exemplo a seguir mostra como excluir um cluster de banco de dados que contém uma instância de banco de dados e várias instâncias de banco de leitor. Ele usa uma saída concisa obtida do comando describe-db-clusters para obter um relatório das instâncias de gravador e de leitor. Novamente, excluímos todas as instâncias de banco de dados de leitor antes de excluirmos a instância de banco de dados de gravador. Não importa a ordem em que excluímos as instâncias de banco de dados de leitor.

Suponha que esse cluster com várias instâncias de banco de dados contenha dados que devem ser preservados. Assim, o comando delete-db-cluster neste exemplo inclui os parâmetros --no-skip-final-snapshot e --final-db-snapshot-identifier para especificar os detalhes do snapshot a ser criado. Também inclui o parâmetro --no-delete-automated-backups para reter backups automatizados.

$ aws rds describe-db-clusters --db-cluster-identifier deleteme-multiple-readers --output text \ --query '*[].["Cluster:",DBClusterIdentifier,DBClusterMembers[*].["Instance:",DBInstanceIdentifier,IsClusterWriter]] Cluster: deleteme-multiple-readers Instance: instance-1010 False Instance: instance-5410 False Instance: instance-9948 False Instance: instance-8451 True $ aws rds delete-db-instance --db-instance-identifier instance-1010 { "DBInstanceIdentifier": "instance-1010", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-instance --db-instance-identifier instance-5410 { "DBInstanceIdentifier": "instance-5410", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-instance --db-instance-identifier instance-9948 { "DBInstanceIdentifier": "instance-9948", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-instance --db-instance-identifier instance-8451 { "DBInstanceIdentifier": "instance-8451", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-cluster --db-cluster-identifier deleteme-multiple-readers \ --no-delete-automated-backups \ --no-skip-final-snapshot \ --final-db-snapshot-identifier deleteme-multiple-readers-final-snapshot { "DBClusterIdentifier": "deleteme-multiple-readers", "Status": "available", "Engine": "aurora-mysql" }

O exemplo a seguir mostra como confirmar que o Aurora criou o snapshot solicitado. Você pode solicitar detalhes do snapshot específico definindo seu identificador deleteme-multiple-readers-final-snapshot. Também é possível obter um relatório de todos os snapshots do cluster que foi excluído especificando o identificador do cluster deleteme-multiple-readers. Os dois comandos retornam informações sobre o mesmo snapshot.

$ aws rds describe-db-cluster-snapshots \ --db-cluster-snapshot-identifier deleteme-multiple-readers-final-snapshot { "DBClusterSnapshots": [ { "AvailabilityZones": [], "DBClusterSnapshotIdentifier": "deleteme-multiple-readers-final-snapshot", "DBClusterIdentifier": "deleteme-multiple-readers", "SnapshotCreateTime": "11T01:40:07.354000+00:00", "Engine": "aurora-mysql", ... $ aws rds describe-db-cluster-snapshots --db-cluster-identifier deleteme-multiple-readers { "DBClusterSnapshots": [ { "AvailabilityZones": [], "DBClusterSnapshotIdentifier": "deleteme-multiple-readers-final-snapshot", "DBClusterIdentifier": "deleteme-multiple-readers", "SnapshotCreateTime": "11T01:40:07.354000+00:00", "Engine": "aurora-mysql", ...

Proteção contra exclusão para clusters do Aurora.

Não é possível excluir clusters com a proteção contra exclusão habilitada. É possível excluir instâncias de banco de dados dentro do cluster, mas não o cluster em si. Dessa maneira, o volume do cluster que contém todos os seus dados está protegido contra exclusão acidental. O Aurora aplica a proteção contra exclusão para um cluster de banco de dados se você tentar excluir o cluster usando o console, a AWS CLI ou a API do RDS.

Por padrão, a proteção contra exclusão permanece habilitada quando você cria um cluster de banco de dados de produção usando o AWS Management Console. Porém, a proteção contra exclusão será desabilitada por padrão, se você criar um cluster usando a AWS CLI ou a API. A ativação ou desativação da proteção contra exclusão não causa uma interrupção. Modifique o cluster e desabilite a proteção contra exclusão para conseguir excluí-lo. Para obter mais informações sobre como ativar e desativar a proteção contra exclusão, consulte Modificar o cluster de banco de dados usando o console, a CLI e a API.

dica

Mesmo que todas as instâncias de banco de dados sejam excluídas, é possível acessar os dados criando uma nova instância de banco de dados no cluster.

Excluir um cluster parado do Aurora

Não é possível excluir um cluster se ele estiver no estado stopped. Nesse caso, inicie o cluster antes de excluí-lo. Para obter mais informações, consulte Iniciar um cluster de banco de dados do Aurora.

Excluir clusters do Aurora MySQL que são réplicas de leitura

No Aurora MySQL, você não pode excluir uma instância de banco de dados em um cluster do banco de dados se ambas as condições a seguir forem verdadeiras:

  • O cluster de banco de dados é uma réplica de leitura de outro cluster de banco de dados do Aurora.

  • A instância de banco de dados é a única instância no cluster de banco de dados.

Para excluir uma instância de banco de dados nesse caso, primeiro promova o cluster de banco de dados para que ele deixe de ser uma réplica de leitura. Quando a promoção for concluída, você poderá excluir a instância de banco de dados final do cluster de banco de dados. Para obter mais informações, consulte Replicar clusters de banco de dados do Amazon Aurora MySQL entre Regiões da AWS.

O snapshot final ao excluir um cluster

Ao longo desta seção, os exemplos mostram como escolher se deseja tirar um snapshot final ao excluir um cluster do Aurora. Se você escolher fazer um snapshot final, mas o nome especificado corresponder a um snapshot existente, a operação será interrompida com erro. Nesse caso, examine os detalhes do snapshot para confirmar se ele representa o detalhe atual ou se é um snapshot mais antigo. Se o snapshot existente não tiver os dados mais recentes que você deseja preservar, renomeie o snapshot e tente novamente ou especifique um nome diferente para o parâmetro do snapshot final.

Excluir uma instância de banco de dados de um cluster de banco de dados do Aurora

É possível excluir uma instância de banco de dados de um cluster de banco de dados do Aurora como parte do processo de exclusão de todo o cluster. Se o cluster contiver determinado número de instâncias de banco de dados, a exclusão do cluster exige a exclusão de cada uma dessas instâncias. Também é possível excluir uma ou mais instâncias de leitor em um cluster e deixá-lo em execução. Faça isso para reduzir a capacidade computacional e os encargos associados se o seu cluster não estiver ocupado.

Para excluir uma instância de banco de dados, é necessário especificar o nome da instância.

Você pode excluir uma instância de banco de dados usando o AWS Management Console, a AWS CLI ou a API do RDS.

nota

Quando a réplica do Aurora é excluída, o endpoint da instância é removido imediatamente, e a réplica do Aurora é removida do endpoint leitor. Se houver instruções em execução na réplica do Aurora que está sendo excluída, haverá um período de carência de três minutos. As instruções existentes podem ser concluídas durante o período de carência. Quando o período de carência termina, a réplica do Aurora é fechada e excluída.

Para clusters de banco de dados do Aurora, a exclusão de uma instância de banco de dados não exclui necessariamente todo o cluster. Você pode excluir uma instância de banco de dados em um cluster do Aurora para reduzir a capacidade computacional e os encargos associados quando o cluster não estiver ocupado. Para obter informações sobre as circunstâncias especiais para clusters do Aurora que têm uma ou nenhuma instância de banco de dados, consulte Excluir um cluster do Aurora com uma única instância de banco de dados e Excluir um cluster do Aurora vazio.

nota

Não é possível excluir um cluster de banco de dados quando a proteção contra exclusão está habilitada nele. Para obter mais informações, consulte Proteção contra exclusão para clusters do Aurora..

Modifique o cluster de banco de dados para desabilitar a proteção contra exclusão. Para obter mais informações, consulte Modificar um cluster de bancos de dados Amazon Aurora.

Como excluir uma instância de banco de dados em um cluster de banco de dados
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Databases (Bancos de dados) e a instância de banco de dados que você deseja excluir.

  3. Em Ações, escolha Excluir.

  4. Digite delete me na caixa.

  5. Escolha Delete (Excluir).

Para excluir uma instância de banco de dados usando a AWS CLI, chame o comando delete-db-instance e especifique o valor --db-instance-identifier.

Para Linux, macOS ou Unix:

aws rds delete-db-instance \ --db-instance-identifier mydbinstance

Para Windows:

aws rds delete-db-instance ^ --db-instance-identifier mydbinstance

Para excluir uma instância de banco de dados usando a API do Amazon RDS, chame a operação DeleteDBInstance e especifique o parâmetro DBInstanceIdentifier.

nota

Quando o status de uma instância de banco de dados for deleting, seu valor de certificado CA não será exibido no console do RDS nem na saída de comandos da AWS CLI ou de operações de API do RDS. Para obter mais informações sobre certificados CA, consulte Usar SSL/TLS para criptografar uma conexão com um cluster de banco de dados.