Excluir clusters de banco de dados e instâncias de banco de dados do Aurora
É possível excluir um cluster de banco de dados do Aurora quando não for mais necessário. Isso 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 novo cluster contendo os mesmos dados.
Você também pode excluir instâncias de banco de dados de um cluster, preservando o próprio cluster e os dados que ele contém. Isso pode ajudar a reduzir as cobranças se o cluster não estiver ocupado e não precisar da capacidade computacional de várias instâncias de banco de dados.
Tópicos
- Excluir um cluster de banco de dados do Aurora
- Proteção contra exclusão para clusters do Aurora.
- Excluir um cluster parado do Aurora
- Excluir clusters do Aurora MySQL que são réplicas de leitura
- O snapshot final ao excluir um cluster
- Excluir uma instância de banco de dados de um cluster de banco de dados do Aurora
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. No entanto, a remoção do cluster em si requer que você faça uma escolha 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.
-
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 tem alguma instância de leitor, excluir uma das instâncias apenas reduz a capacidade de computação 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.
-
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.
Se você usar o AWS Management Console, esta é a etapa final. Excluir a instância de banco de dados final em um cluster de banco de dados por meio do console exclui automaticamente o cluster de banco de dados e os danos no volume do cluster. Nesse ponto, o Aurora solicita que você crie, opcionalmente, um snapshot antes de excluir o cluster. O Aurora também pede para você confirmar que pretende excluir o cluster.
-
Somente CLI e API: se você excluir as instâncias de banco de dados usando a AWS CLI ou a API RDS, o cluster e o volume do cluster associado permanecerão mesmo após a exclusão de todas as instâncias de banco de dados. Para excluir o próprio cluster, chame o comando da CLI
delete-db-cluster
ou a operação de APIDeleteDBCluster
quando o cluster tiver zero instâncias de banco de dados associadas. Nesse ponto, você decide se criará ou não um snapshot do volume do cluster. Isso preserva os dados obtidos instância do banco de dados primárior se você precisar deles mais tarde.
Tópicos
Excluir um cluster do Aurora vazio
Se você usar o AWS Management Console, o Aurora excluirá automaticamente o cluster quando você excluir a última instância de banco de dados desse cluster. Portanto, os procedimentos para excluir um cluster vazio se aplicam somente ao usar a AWS CLI ou a API do RDS.
É 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 do Aurora vazio usando a AWS CLI, chame o comando delete-db-cluster.
Para excluir um cluster de banco de dados do Aurora vazio usando a API do Amazon RDS, chame a operação DeleteDBInstance.
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, em seguida, exclui o cluster vazio sem criar um snapshot final.
$
aws rds describe-db-clusters --db-cluster-identifierdeleteme-zero-instances
--output text \ --query '*[].["Cluster:",DBClusterIdentifier,DBClusterMembers[*].["Instance:",DBInstanceIdentifier,IsClusterWriter]]Cluster:
deleteme-zero-instances
$
aws rds delete-db-cluster --db-cluster-identifierdeleteme-zero-instances
--skip-final-snapshot{ "DBClusterIdentifier": "
deleteme-zero-instances
", "Status": "available", "Engine": "aurora-mysql" }
Excluir um cluster do Aurora com uma única instância de banco de dados
Se você tentar excluir a última instância de banco de dados no cluster do Aurora, o comportamento dependerá do método usado. É possível excluir a última instância de banco de dados usando o AWS Management Console. Isso também exclui o cluster de banco de dados. Você também pode excluir a última instância de banco de dados por meio da AWS CLI ou da API, 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 e, portanto, não criamos um snapshot do volume instância do banco de dados primárior.
$
aws rds delete-db-cluster --db-cluster-identifierdeleteme-writer-only
--skip-final-snapshotAn 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-identifierdeleteme-writer-only
\ --query '*[].[DBClusterIdentifier,Status,DBClusterMembers[*].[DBInstanceIdentifier,IsClusterWriter]]'[ [ "
deleteme-writer-only
", "available", [ [ "instance-2130", true ] ] ] ]$
aws rds delete-db-instance --db-instance-identifierinstance-2130
{ "DBInstanceIdentifier": "instance-2130", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" }
$
aws rds delete-db-cluster --db-cluster-identifierdeleteme-writer-only
--skip-final-snapshot{ "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. Se você usar o AWS Management Console, a exclusão da instância de gravador exclui automaticamente o cluster na sequência. Se você usa a AWS CLI ou a API RDS, a exclusão das instâncias de gravador deixa o cluster e os respectivos dados intocados. Nesse caso, a exclusão ocorre por meio de um comando ou uma operação de API em separado.
-
Consulte para conferir o procedimento de exclusão de uma instância de banco de dados do Aurora Excluir uma instância de banco de dados de um cluster de banco de dados do Aurora.
-
Consulte para ver o procedimento de exclusão da instância de banco de dados de gravador em um cluster do Aurora Excluir um cluster do Aurora com uma única instância de banco de dados.
-
Consulte para ver o procedimento de exclusão de um cluster do Aurora vazio Excluir um cluster do Aurora vazio.
Este exemplo 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 e, portanto, a operação de exclusão ignoraria o snapshot final.
$
aws rds delete-db-cluster --db-cluster-identifierdeleteme-writer-and-reader
--skip-final-snapshotAn 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-identifierdeleteme-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-identifierinstance-1039
{ "DBInstanceIdentifier": "instance-1039", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" }
$
aws rds delete-db-instance --db-instance-identifierinstance-7384
{ "DBInstanceIdentifier": "instance-7384", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" }
$
aws rds delete-db-cluster --db-cluster-identifierdeleteme-writer-and-reader
--skip-final-snapshot{ "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.
$
aws rds describe-db-clusters --db-cluster-identifierdeleteme-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-identifierinstance-1010
{ "DBInstanceIdentifier": "instance-1010", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" }
$
aws rds delete-db-instance --db-instance-identifierinstance-5410
{ "DBInstanceIdentifier": "instance-5410", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" }
$
aws rds delete-db-instance --db-instance-identifierinstance-9948
{ "DBInstanceIdentifier": "instance-9948", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" }
$
aws rds delete-db-instance --db-instance-identifierinstance-8451
{ "DBInstanceIdentifier": "instance-8451", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" }
$
aws rds delete-db-cluster --db-cluster-identifierdeleteme-multiple-readers
--no-skip-final-snapshot \ --final-db-snapshot-identifierdeleteme-multiple-readers-snapshot-11-7087
{ "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-snapshot-11-7087
. 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-identifierdeleteme-multiple-readers-snapshot-11-7087
{ "DBClusterSnapshots": [ { "AvailabilityZones": [], "DBClusterSnapshotIdentifier": "
deleteme-multiple-readers-snapshot-11-7087
", "DBClusterIdentifier": "deleteme-multiple-readers
", "SnapshotCreateTime": "11T01:40:07.354000+00:00", "Engine": "aurora-mysql", ...$
aws rds describe-db-cluster-snapshots --db-cluster-identifierdeleteme-multiple-readers
{ "DBClusterSnapshots": [ { "AvailabilityZones": [], "DBClusterSnapshotIdentifier": "
deleteme-multiple-readers-snapshot-11-7087
", "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.
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.
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.
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.
Para excluir uma instância de banco de dados
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, escolha Databases (Bancos de dados) e a instância de banco de dados que você deseja excluir.
-
Em Actions, escolha Delete.
-
Digite
delete me
na caixa. -
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
.
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 Como Usar SSL/TLS para criptografar uma conexão com um cluster de banco de dados.