Trabalhar com backups - Amazon Relational Database Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Trabalhar com backups

O Amazon RDS cria e salva backups automatizados de sua instância de banco de dados durante a janela de backup de sua instância de banco de dados. O RDS cria um snapshot do volume de armazenamento da instância de banco de dados, fazendo o backup de toda a instância de banco de dados e não apenas dos bancos de dados individuais. O RDS salva os backups automatizados da instância de banco de dados de acordo com o período de retenção de backup especificado. Se necessário, você poderá recuperar seu banco de dados em qualquer ponto no tempo durante o período de retenção do backup.

Os backups automatizados seguem estas regras:

  • Sua instância de banco de dados deve estar no estado AVAILABLE para fazer backups automáticos. Os backups automatizados não ocorrem enquanto sua instância de banco de dados estiver em um estado diferente de AVAILABLE, por exemplo, STORAGE_FULL.

  • Os backups e snapshots automatizados não ocorrem enquanto uma cópia estiver sendo executada na mesma região da AWS para a mesma instância de banco de dados.

Também faça backup da instância de banco de dados manualmente, criando manualmente um snapshot de banco de dados. Para mais informações sobre como criar um snapshot de banco de dados, consulte Criar um snapshot de banco de dados.

O primeiro snapshot de uma instância de banco de dados contém os dados da instância de banco de dados completa. Os snapshots subsequentes da mesma instância de banco de dados são incrementais, o que significa que somente os dados que foram alterados depois do snapshot mais recente serão salvos.

Você pode copiar snapshot de banco de dadoss automáticos e manuais, e compartilhar snapshot de banco de dadoss manuais. Para mais informações sobre como copiar um snapshot de banco de dados, consulte Copiar um snapshot de . Para mais informações sobre como compartilhar um snapshot de banco de dados, consulte Compartilhar um snapshot do de banco de dados.

nota

Você também pode usar o AWS Backup para gerenciar backups de instâncias de banco de dados do Amazon RDS. Os backups gerenciados pelo AWS Backup são considerados snapshots manuais de banco de dados, mas não são contabilizados para a cota de snapshots de banco de dados para o RDS. Backups que foram criados com o AWS Backup têm nomes que terminam com awsbackup:AWS-Backup-job-number. Para obter informações sobre o AWS Backup, consulte o Guia do desenvolvedor do AWS Backup.

Armazenamento de backup

Seu armazenamento de backup do Amazon RDS para cada região da AWS é composto de backups automáticos e snapshots de banco de dados manuais para essa região. O espaço total do armazenamento de backup é igual à soma do armazenamento de todos os backups nessa região. A mudança de um DB snapshot para outra região aumenta o armazenamento de backup na região de destino. Os backups são armazenados no Amazon S3.

Para obter mais informações sobre os custos de armazenamento de backup, consulte Definição de preço do Amazon RDS.

Se você optar por reter backups automatizados ao excluir uma instância de banco de dados, os backups automatizados serão salvos para o período de retenção total. Se você não escolher Retain automated backups (Reter backups automatizados) ao excluir uma instância de banco de dados, todos os backups automatizados serão excluídos com a instância de banco de dados. Depois que forem excluídos, os backups automatizados não poderão ser recuperados. Se você preferir que o Amazon RDS crie um snapshot de banco de dados final antes de excluir sua instância de banco de dados, poderá usá-lo para recuperar sua instância de banco de dados. Ou use um snapshot manual criado anteriormente. Os snapshots manuais não são excluídos. É possível ter até 100 snapshots manuais por região.

Janela de backup

Os backups automáticos são feitos diariamente durante a janela de backup escolhida. Se o backup exigir mais tempo do que o da janela de backup, ele continuará após a janela encerrar, até que esteja concluído. A janela de backup não pode se sobrepor à janela de manutenção semanal para a instância do banco de dados.

Durante a janela de backup automático, as E/S de armazenamento podem ser suspensas brevemente enquanto o processo de backup é inicializado (geralmente durante alguns segundos). Você pode perceber latências elevadas por alguns minutos durante os backups de implantações Multi-AZ. Para MariaDB, MySQL, Oracle e PostgreSQL, a atividade de E/S não é suspensa no principal durante o backup para implantações Multi-AZ, pois o backup é obtido do modo de espera. Para o SQL Server, a atividade de E/S é suspensa brevemente durante o backup para implantações Multi-AZ.

Se você não especificar uma janela de backup preferida ao criar a instância de banco de dados, o Amazon RDS atribuirá uma janela de backup de 30 minutos padrão. Essa janela é selecionada aleatoriamente em um bloco de tempo de 8 horas para cada região da AWS. A tabela a seguir lista os blocos de tempo de cada região da AWS dos quais as janelas de backups padrão são atribuídas.

Nome da região Região Bloco de hora
Leste dos EUA (Ohio) us-east-2 03:00–11:00 UTC
Leste dos EUA (Norte da Virgínia) us-east-1 03:00–11:00 UTC
Oeste dos EUA (Norte da Califórnia) us-west-1 06:00–14:00 UTC
Oeste dos EUA (Oregon) us-west-2 06:00–14:00 UTC
África (Cidade do Cabo) af-south-1 03:00–11:00 UTC
Ásia-Pacífico (Hong Kong) ap-east-1 06:00–14:00 UTC
Ásia Pacífico (Mumbai) ap-south-1 16:30–00:30 UTC
Ásia-Pacífico (Osaka – Local) ap-northeast-3 00:00–08:00 UTC
Ásia-Pacífico (Seul) ap-northeast-2 13:00–21:00 UTC
Ásia-Pacífico (Cingapura) ap-southeast-1 14:00–22:00 UTC
Ásia-Pacífico (Sydney) ap-southeast-2 12:00–20:00 UTC
Ásia-Pacífico (Tóquio) ap-northeast-1 13:00–21:00 UTC
Canadá (Central) ca-central-1 03:00–11:00 UTC
China (Pequim) cn-north-1 06:00–14:00 UTC
China (Ningxia) cn-northwest-1 06:00–14:00 UTC
Europa (Frankfurt) eu-central-1 20:00–04:00 UTC
Europa (Irlanda) eu-west-1 22:00–06:00 UTC
Europa (Londres) eu-west-2 22:00–06:00 UTC
Europa (Paris) eu-west-3 07:29–14:29 UTC
Europa (Milão) eu-south-1 02:00–10:00 UTC
Europa (Estocolmo) eu-north-1 23:00–07:00 UTC
Oriente Médio (Bahrein) me-south-1 06:00–14:00 UTC
América do Sul (São Paulo) sa-east-1 23:00–07:00 UTC
AWS GovCloud (Leste dos EUA) us-gov-east-1 17:00–01:00 UTC
AWS GovCloud (US-West) us-gov-west-1 06:00–14:00 UTC

Período de retenção de backup

Você pode definir o período de retenção de backup quando ao criar uma instância de banco de dados. Se você não definir o período de retenção de backup, o período de retenção de backup padrão será um dia, se criar a instância de banco de dados usando a API do Amazon RDS ou a AWS CLI. O período de retenção de backup padrão será sete dias, se você criar a instância de banco de dados usando o console.

Após criar uma instância de banco de dados, é possível modificar o período de retenção de backup. Você pode definir o período de retenção de backup entre 0 e 35 dias. Definir o período de retenção de backup como 0 desabilita os backups automatizados. Os limites de snapshot manual (100 por região) não se aplicam a backups automáticos.

Os backups automatizados não serão criados enquanto uma instância de banco de dados estiver interrompida. Os backups podem ser retidos por mais tempo do que o período de retenção de backup se uma instância de banco de dados tiver sido interrompida. O RDS não inclui o tempo gasto no estado stopped quando a janela de retenção de backup é calculada.

Importante

Ocorrerá uma interrupção imediata se você alterar o período de retenção de backup de 0 para um valor diferente de zero ou vice-versa. Isso se aplica a instâncias de banco de dados Single-AZ e Multi-AZ.

Ativar backups automáticos

Se sua instância de banco de dados não tiver backups automáticos ativados, você poderá habilitá-los a qualquer momento. Habilite backups automáticos configurando o período de retenção de backup para um valor positivo diferente de zero. Quando os backups automáticos estão ativados, seu banco de dados e sua instância do RDS são desconectados e um backup é criado imediatamente.

Para habilitar imediatamente backups automáticos

  1. Faça login no Console de gerenciamento da AWS 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 modificar.

  3. Selecione Modify. A página Modify DB Instance é exibida.

  4. Em Backup Retention Period (Período de retenção de backup), escolha um valor positivo diferente de zero; por exemplo, 3 dias.

  5. Escolha Continue.

  6. Escolha Apply immediately (Aplicar imediatamente).

  7. Na página de confirmação, escolha Modify DB Instance (Modificar instância de banco de dados) para salvar suas alterações e habilitar os backups automáticos.

Para habilitar os backups automáticos imediatamente, use o comando modify-db-instance da AWS CLI.

No exemplo a seguir, habilitamos backups automatizados definindo o período de retenção de backup como três dias.

Inclua os seguintes parâmetros:

  • --db-instance-identifier

  • --backup-retention-period

  • --apply-immediately ou --no-apply-immediately

Para Linux, macOS ou Unix:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --backup-retention-period 3 \ --apply-immediately

Para Windows:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --backup-retention-period 3 ^ --apply-immediately

Para habilitar backups automatizados imediatamente, use a operação ModifyDBInstance da API do RDS.

No exemplo a seguir, habilitamos backups automatizados definindo o período de retenção de backup como três dias.

Inclua os seguintes parâmetros:

  • DBInstanceIdentifier

  • BackupRetentionPeriod

  • ApplyImmediately = true

exemplo

https://rds.amazonaws.com/ ?Action=ModifyDBInstance &DBInstanceIdentifier=mydbinstance &BackupRetentionPeriod=3 &ApplyImmediately=true &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2009-10-14T17%3A48%3A21.746Z &AWSAccessKeyId=<AWS Access Key ID> &Signature=<Signature>

Reter backups automatizados

Ao excluir uma instância de banco de dados, você pode reter backups automatizados.

Os backups automatizados retidos contêm snapshots de sistema e logs de transação de uma instância de banco de dados. Eles também incluem as propriedades da instância de banco de dados, como o armazenamento alocado e a classe da instância do banco de dados, obrigatórios para restaurar uma instância ativa.

Retenha backups automatizados para instâncias do RDS que estejam executando mecanismos MySQL, MariaDB, PostgreSQL, Oracle e Microsoft SQL Server.

Restaure ou remova backups automatizados retidos usando o Console de gerenciamento da AWS, a API do RDS e a AWS CLI.

Período de retenção

Os snapshots de sistema e os logs de transação em um backup automatizado retido expiram da mesma maneira que expiram para a instância de banco de dados de origem. Como não há novos snapshots ou logs criados para essa instância, os backups automatizados retidos acabam expirando por completo. Efetivamente, eles duram o mesmo que o snapshot do sistema mais recente, com base nas configurações do período de retenção que a instância de origem quando você a excluiu. Os backups automatizados retidos serão removidos pelo sistema depois que o último snapshot do sistema expirar.

Remova um backup automatizado retido da mesma maneira que exclui uma instância de banco de dados. Remova backups automatizados retidos usando o console ou a operação DeleteDBInstanceAutomatedBackup da API do RDS.

Os snapshots finais independem dos backups automatizados retidos. É altamente recomendável fazer um snapshot final, mesmo que você retenha backups automatizados, porque eles acabarão expirando. O snapshot final não expira.

Restauração

Para exibir os backups automatizados retidos, alterne para a página de backups automatizados. Exiba snapshots individuais associados a um backup automatizado retido na página de snapshots de banco de dados no console. Ou descreva snapshots individuais associados a um backup automatizado retido. Lá, restaure diretamente uma instância de banco de dados de um desses snapshots.

As instâncias de banco de dados restauradas são associadas automaticamente aos grupos de parâmetros e opções padrão. Porém, você pode aplicar um grupo de parâmetros personalizado e um grupo de opções os especificando durante uma restauração.

No exemplo a seguir, restaure uma instância de banco de dados para um point-in-time usando o backup automatizado retido. Primeiramente, descreva os backups automatizados retidos, de maneira que possa ver quais deles restaurar.

Para descrever os backups automatizados retidos usando a API do RDS, chame a ação DescribeDBInstanceAutomatedBackups com um dos seguintes parâmetros:

  • DBInstanceIdentifier

  • DbiResourceId

aws rds describe-db-instance-automated-backups --db-instance-identifier DBInstanceIdentifier OR aws rds describe-db-instance-automated-backups --dbi-resource-idDbiResourceId

Em seguida, para restaurar o backup automatizado retido para um point-in-time usando a API do RDS, chame a ação RestoreDBInstanceToPointInTime com os seguintes parâmetros:

  • SourceDbiResourceId

  • TargetDBInstanceIdentifier

aws rds restore-db-instance-to-point-in-time --source-dbi-resource-id SourceDbiResourceId --target-db-instance-identifier TargetDBInstanceIdentifier --use-latest-restorable-time

Custos de retenção

O custo de um backup automatizado retido é o custo de armazenamento total dos snapshots de sistema associados. Não há cobrança adicional de logs de transação ou metadados de instância. Todas as outras regras da definição de preço se aplicam a instâncias restauráveis.

Por exemplo, suponhamos que o armazenamento alocado total das instâncias em execução seja 100 GB. Suponhamos também que você tenha 50 GB de snapshots manuais mais 75 GB de snapshots de sistema associados a um backup automatizado retido. Nesse caso, você só é cobrado pelos 25 GB adicionais do armazenamento de backup, como: (50 GB + 75 GB) – 100 GB = 25 GB.

Limitações e recomendações

As seguintes limitações se aplicam a backups automatizados retidos:

  • O número máximo de backups automatizados retidos em uma região da AWS é 40. Ele não está incluído no limite de instâncias de banco de dados. É possível ter 40 instâncias de banco de dados em execução e mais 40 backups automatizados retidos simultaneamente.

  • Os backups automatizados retidos não contêm informações sobre grupos de parâmetros ou opções.

  • Restaure uma instância excluída para um point-in-time que esteja dentro do período de retenção no momento da exclusão.

  • Não é possível modificar um backup automatizado retido. Isso ocorre porque ele consiste em backups de sistema, logs de transação e propriedades de instância de banco de dados existentes no momento em que você excluiu a instância de origem.

Excluir backups automatizados retidos

Você pode excluir backups automatizados retidos quando eles não são mais necessários.

Como excluir um backup automatizado retido

  1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Automated backups (Backups automatizados).

  3. Na guia Retained (Retido), escolha o backup automatizado retido que você quer excluir.

  4. Em Actions, selecione Delete.

  5. Na página de confirmação, insira delete me e escolha Delete (Excluir).

Você pode excluir um backup automatizado retido usando o comando da AWS CLI delete-db-instance-automated-backup.

As seguintes opções são usadas para excluir um backup automatizado retido:

  • --dbi-resource-id – o identificador de recurso da instância de banco de dados de origem.

    Você pode encontrar o identificador de recurso da instância de banco de dados de origem de um backup automatizado retido executando o comando da AWS CLI describe-db-instance-automated-backups.

O exemplo a seguir exclui o backup automatizado retido com o identificador de recurso da instância de banco de dados de origem db-123ABCEXAMPLE.

Para Linux, macOS ou Unix:

aws rds delete-db-instance-automated-backup \ --dbi-resource-id db-123ABCEXAMPLE

Para Windows:

aws rds delete-db-instance-automated-backup ^ --dbi-resource-id db-123ABCEXAMPLE

Você pode excluir um backup automatizado retido usando a operação da API do Amazon RDS DeleteDBInstanceAutomatedBackup.

Os seguintes parâmetros são usados para excluir um backup automatizado retido:

  • DbiResourceId – o identificador de recurso da instância de banco de dados de origem.

    Você pode encontrar o identificador de recurso da instância de banco de dados de origem de um backup automatizado retido usando a operação da API do Amazon RDS DescribeDBInstanceAutomatedBackups.

Desativar backups automáticos

Convém desabilitar temporariamente os backups automatizados em determinadas situações; por exemplo, durante o carregamento de grandes quantidades de dados.

Importante

É altamente desaconselhável desativar os backups automáticos, pois isso desabilita a recuperação point-in-time. Desativar backups automáticos para uma instância de banco de dados exclui todos os backups automáticos existentes da instância. Se você desativar e, em seguida, reativar os backups automatizados, só será possível restaurar a partir do momento em que os backups automatizados foram reativados.

Para desabilitar imediatamente backups automáticos

  1. Faça login no Console de gerenciamento da AWS 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 modificar.

  3. Selecione Modify. A página Modify DB Instance é exibida.

  4. Em Backup Retention Period (Período de retenção de backup), escolha 0 days (0 dias).

  5. Escolha Continue.

  6. Escolha Apply immediately (Aplicar imediatamente).

  7. Na página de confirmação, escolha Modify DB Instance (Modificar instância de banco de dados) para salvar suas alterações e desabilitar os backups automáticos.

Para desabilitar os backups automáticos imediatamente, use o comando modify-db-instance e defina o período de retenção de backup como 0 com --apply-immediately.

O exemplo a seguir desabilitou imediatamente os backups automáticos.

Para Linux, macOS ou Unix:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --backup-retention-period 0 \ --apply-immediately

Para Windows:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --backup-retention-period 0 ^ --apply-immediately

Para saber quando a modificação está em vigor, chame describe-db-instances para a instância de banco de dados até que o valor para o período de retenção de backup seja 0 e o status mydbinstance esteja disponível.

aws rds describe-db-instances --db-instance-identifier mydbinstance

Para desabilitar os backups automáticos imediatamente, chame a operação ModifyDBInstance com os seguintes parâmetros:

  • DBInstanceIdentifier = mydbinstance

  • BackupRetentionPeriod = 0

exemplo

https://rds.amazonaws.com/ ?Action=ModifyDBInstance &DBInstanceIdentifier=mydbinstance &BackupRetentionPeriod=0 &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2009-10-14T17%3A48%3A21.746Z &AWSAccessKeyId=<AWS Access Key ID> &Signature=<Signature>

Backups automáticos com mecanismos de armazenamento MySQL sem suporte

Para o mecanismo de banco de dados MySQL, os backups automatizados só são compatíveis com o mecanismo de armazenamento InnoDB. O uso desses recursos com outros mecanismos de armazenamento MySQL, inclusive MyISAM, pode acarretar um comportamento não confiável durante a restauração de backups. Mais especificamente, como os mecanismos de armazenamento como o MyISAM não são compatíveis com a recuperação de falhas de maneira confiável, as tabelas podem ser corrompidas em caso de falha. Por esse motivo, aconselhamos você a usar o mecanismo de armazenamento InnoDB.

  • Para converter tabelas do MyISAM existentes em tabelas do InnoDB, use o comando ALTER TABLE; por exemplo: ALTER TABLE table_name ENGINE=innodb, ALGORITHM=COPY;

  • Se optar por usar o MyISAM, você poderá tentar reparar manualmente as tabelas que forem danificadas após uma falha usando o comando REPAIR. Para obter mais informações, consulte REPAIR TABLE Statement na documentação do MySQL. No entanto, conforme observado na documentação do MySQL, há grandes chances de que você não consiga recuperar todos os dados.

  • Se você quiser fazer um snapshot das tabelas do MyISAM antes da restauração, siga estas etapas:

    1. Interrompa todas as atividades nas tabelas do MyISAM (isto é, feche todas as sessões).

      Você pode fechar todas as sessões chamando o comando mysql.rds_kill para cada processo que é retornado pelo comando SHOW FULL PROCESSLIST.

    2. Bloqueie e limpe cada uma de suas tabelas do MyISAM. Por exemplo, os comandos a seguir bloqueiam e limpam duas tabelas chamadas myisam_table1 e myisam_table2:

      mysql> FLUSH TABLES myisam_table, myisam_table2 WITH READ LOCK;
    3. Crie um snapshot de sua instância de banco de dados. Quando o snapshot for concluído, liberte os bloqueios e retome a atividade nas tabelas do MyISAM. Você pode liberar os bloqueios em suas tabelas usando o seguinte comando:

      mysql> UNLOCK TABLES;

    Essas etapas forçam o MyISAM a limpar os dados armazenados na memória em disco, o que garante uma inicialização limpa quando você restaura de um snapshot de banco de dados. Para obter mais informações sobre como criar um snapshot de banco de dados, consulte Criar um snapshot de banco de dados.

Backups automáticos com mecanismos de armazenamento MariaDB sem suporte

No mecanismo do banco de dados MariaDB, os backups automatizados só são compatíveis com os mecanismos de armazenamento InnoDB (versão 10.2 e posterior) e XtraDB (versões 10.0 e 10.1). O uso desses recursos com outros mecanismos de armazenamento do MariaDB, incluindo Aria, pode levar a um comportamento não confiável durante a restauração a partir de backups. Mesmo que o Aria seja uma alternativa resistente a falhas em relação ao MyISAM, suas tabelas ainda podem ficar corrompidas em caso de falha. Por esse motivo, aconselhamos você a usar o mecanismo de armazenamento XtraDB.

  • Para converter tabelas do Aria existentes em tabelas do InnoDB, você pode usar o comando ALTER TABLE. Por exemplo: ALTER TABLE table_name ENGINE=innodb, ALGORITHM=COPY;

  • Para converter tabelas do Aria existentes em tabelas do XtraDB, você pode usar o comando ALTER TABLE. Por exemplo: ALTER TABLE table_name ENGINE=xtradb, ALGORITHM=COPY;

  • Se você optar por usar o Aria, pode tentar reparar manualmente as tabelas que forem danificadas após uma falha usando o comando REPAIR TABLE. Para mais informações, consulte http://mariadb.com/kb/en/mariadb/repair-table/.

  • Se você quiser fazer um snapshot das tabelas do Aria antes da restauração, siga estas etapas:

    1. Interrompa todas as atividades nas tabelas do Aria (isto é, feche todas as sessões).

    2. Bloqueie e limpe cada uma de suas tabelas do Aria.

    3. Crie um snapshot de sua instância de banco de dados. Quando o snapshot for concluído, liberte os bloqueios e retome a atividade nas tabelas do Aria. Essas etapas obrigam o Aria a limpar os dados armazenados na memória movendo-os para o disco, garantindo assim uma inicialização limpa quando você restaurar a partir de um snapshot de banco de dados.