Trabalhar com backups - Amazon Relational Database Service

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 automatizados não ocorrem enquanto uma cópia de snapshot do banco de dados está em execução 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.

Armazenamento de backup

Seu armazenamento de backup do Amazon RDS para cada região da AWS é composto por 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, porque o backup é retomado do modo de espera. Para o SQL Server, a atividade de E/S é suspensa brevemente durante o backup para implantações Multi-AZ.

Os backups automatizados podem ser ignorados ocasionalmente se a instância de banco de dados tiver uma workload pesada no momento em que um backup deveria ser iniciado. Se um backup for ignorado, ainda será possível fazer uma recuperação point-in-time (PITR), e ainda se tentará fazer backup durante a próxima janela de backup. Para obter mais informações sobre o PITR, consulte Restauração de uma instância de banco de dados para um tempo especificado.

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 a partir dos quais as janelas de backups padrão são atribuídas.

Nome da região Região Bloco de hora
US East (Ohio) us-east-2 De 03:00 a 11:00 UTC
US East (N. Virginia) us-east-1 De 03:00 a 11:00 UTC
US West (N. California) us-west-1 De 06:00 a 14:00 UTC
US West (Oregon) us-west-2 De 06:00 a 14:00 UTC
Africa (Cape Town) af-south-1 De 03:00 a 11:00 UTC
Asia Pacific (Hong Kong) ap-east-1 6h às 14h (UTC)
Ásia-Pacífico (Jacarta) ap-southeast-3 Das 08h às 16h UTC
Asia Pacific (Mumbai) ap-south-1 De 16:30 a 00:30 UTC
Asia Pacific (Osaka) ap-northeast-3 De 00:00 a 08:00 UTC
Asia Pacific (Seoul) ap-northeast-2 De 13:00 a 21:00 UTC
Ásia-Pacífico (Singapura) ap-southeast-1 De 14:00 a 22:00 UTC
Asia Pacific (Sydney) ap-southeast-2 De 12:00 a 20:00 UTC
Asia Pacific (Tokyo) ap-northeast-1 De 13:00 a 21:00 UTC
Canada (Central) ca-central-1 De 03:00 a 11:00 UTC
China (Beijing) cn-north-1 De 06:00 a 14:00 UTC
China (Ningxia) cn-northwest-1 De 06:00 a 14:00 UTC
Europe (Frankfurt) eu-central-1 De 20:00 a 04:00 UTC
Europe (Ireland) eu-west-1 De 22:00 a 06:00 UTC
Europe (London) eu-west-2 De 22:00 a 06:00 UTC
Europe (Paris) eu-west-3 De 07:29 a 14:29 UTC
Europe (Milan) eu-south-1 De 02:00 a 10:00 UTC
Europe (Stockholm) eu-north-1 De 23:00 a 07:00 UTC
Oriente Médio (Bahrein) me-south-1 De 06:00 a 14:00 UTC
South America (São Paulo) sa-east-1 De 23:00 a 07:00 UTC
AWS GovCloud (Leste dos EUA) us-gov-east-1 De 17:00 a 01:00 UTC
AWS GovCloud (Oeste dos EUA) us-gov-west-1 De 06:00 a 14:00 UTC

Backup retention period (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 do 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.

nota

Se você gerenciar seus backups no AWS Backup, não poderá habilitar os backups automatizados. Para obter mais informações, consulte . Uso do AWS Backup para gerenciar backups automatizados.

Para habilitar imediatamente backups automáticos

  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 modificar.

  3. Selecione Modify. A página Modify DB instance (Modificar instância de banco de dados) será 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, selecione 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 da AWS CLI modify-db-instance.

Inclua os seguintes parâmetros:

  • --db-instance-identifier

  • --backup-retention-period

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

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

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, use a operação da API do RDS ModifyDBInstance com os seguintes parâmetros obrigatórios:

  • DBInstanceIdentifier

  • BackupRetentionPeriod

Visualizar backups automatizados

Para visualizar backups automatizados, escolha Automated backups (Backups automatizados) no painel de navegação. Para visualizar snapshots individuais associados a um backup automatizado, escolha Snapshots no painel de navegação. Como alternativa, você pode descrever snapshots individuais associados a um backup automatizado. Lá, restaure diretamente uma instância de banco de dados de um desses snapshots.

Para descrever os backups automatizados para suas instâncias de banco de dados existentes com a AWS CLI, utilize um dos seguintes comandos:

aws rds describe-db-instance-automated-backups --db-instance-identifier DBInstanceIdentifier

ou

aws rds describe-db-instance-automated-backups --dbi-resource-id DbiResourceId

Para descrever os backups automatizados retidos para suas instâncias de banco de dados existentes utilizando a API do RDS, chame a ação DescribeDBInstanceAutomatedBackups com um dos seguintes parâmetros:

  • DBInstanceIdentifier

  • DbiResourceId

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.

Você pode reter 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 AWS Management Console, 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 da API do RDS DeleteDBInstanceAutomatedBackup.

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.

Exibição de backups retidos

Para visualizar os backups automatizados retidos, escolha Automated backups (Backups automatizados) no painel de navegação e, em seguida, escolhaRetained (Retido). Para exibir instantâneos individuais associadas a um backup automatizado retido, escolha Snapshots no painel de navegação. Ou descreva snapshots individuais associados a um backup automatizado retido. Lá, restaure diretamente uma instância de banco de dados de um desses snapshots.

Para descrever seus backups automatizados retidos com a AWS CLI, utilize o seguinte comando:

aws rds describe-db-instance-automated-backups --dbi-resource-id DbiResourceId

Para descrever seus backups automatizados retidos utilizando a API do RDS, chame a ação DescribeDBInstanceAutomatedBackups ação com o parâmetro DbiResourceId.

Restauração

Para obter informações sobre como restaurar instâncias de banco de dados a partir de backups automatizados, consulte Restauração de uma instância de banco de dados para um tempo especificado.

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 automáticos 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 AWS Management Console 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 com a seguinte opção:

  • --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 com o seguinte parâmetro:

  • 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 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 modificar.

  3. Selecione Modify. A página Modify DB instance (Modificar instância de banco de dados) será exibida.

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

  5. Escolha Continue.

  6. Escolha Apply immediately (Aplicar imediatamente).

  7. Na página de confirmação, selecione 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>

Uso do AWS Backup para gerenciar backups automatizados

O AWS Backup é um serviço de backup totalmente gerenciado que facilita a centralização e a automação do backup de dados entre todos os serviços da AWS na nuvem e no local. Você pode gerenciar backups de suas instâncias de banco de dados Amazon RDS no AWS Backup.

Para habilitar backups no AWS Backup, você usa a marcação de recursos para associar sua instância de banco de dados a um plano de backup. Para obter mais informações, consulte Uso de tags para habilitar backups em AWS Backup.

nota

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 criados com o AWS Backup têm nomes que terminam com awsbackup:backup-job-number.

Para obter mais informações sobre o AWS Backup, consulte o Guia do desenvolvedor do AWS Backup.

Para exibir backups gerenciados por AWS Backup

  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, selecione Snapshots.

  3. Escolha a guia Backup service (Serviço de backup).

    Seus backups do AWS Backup estarão listados em Backup service snapshots (Snapshots do serviço de backup).

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

Para o mecanismo de banco de dados MariaDB, os backups automatizados só são compatíveis com o mecanismo de armazenamento InnoDB. 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 InnoDB.

  • 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;

  • 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.