O Amazon RDS tem dois mecanismos de cópia que as pessoas confundem: as cópias automáticas, que o RDS faz diariamente e que além disso permitem voltar a qualquer minuto dos últimos dias, e os instantâneos manuais, que faz quando quiser e que se conservam até os apagar. Ambos são úteis e servem para coisas diferentes.
E há uma coisa que deve saber antes de precisar dela: no RDS restaurar nunca substitui a base de dados atual. Cria-se sempre uma instância nova, com outro nome e outro endereço. Se não contar com isso no momento do susto, perde meia hora preciosa.
Antes de começar: o que significa cada coisa
- RDS
- O serviço de bases de dados geridas da Amazon: você usa a base de dados (MySQL, PostgreSQL, etc.) e a Amazon ocupa-se da máquina, das atualizações e das cópias.
- Instância
- É assim que a AWS chama a cada base de dados que tem no RDS.
- Cópia automática
- A que o RDS faz todos os dias por sua conta e guarda durante os dias que lhe indicar. Permite além disso voltar a qualquer minuto desse período.
- Instantâneo manual
- Uma cópia que faz quando quiser e que se conserva até a apagar.
- Restaurar para um ponto no tempo
- Recuperar a base de dados tal como estava numa data e hora exatas, por exemplo um minuto antes de um apagamento acidental.
- Ponto final (endpoint)
- O endereço através do qual a sua aplicação se liga à base de dados. Cada instância tem o seu; ao restaurar sai um novo.
- Grupo de segurança
- A firewall da AWS: diz a partir de onde é possível ligar-se à base de dados. Uma base restaurada nasce com um predefinido, que costuma bloquear a sua aplicação.
- Multi-AZ
- Opção pela qual o RDS mantém uma réplica noutro centro de dados da mesma região. As cópias são feitas a partir da réplica e não travam o serviço.
- UTC
- A hora universal de referência. Na AWS as horas são expressas em UTC; em Espanha é uma hora a menos no inverno e duas no verão.
Passo a passo
Reveja as cópias automáticas da sua instância
Na consola do RDS, Databases, clique na sua e abra o separador Maintenance & backups. Procure o período de retenção: é o número de dias durante os quais o RDS guarda as cópias automáticas. Se estiver a 0, não há cópias automáticas e devia alterá-lo hoje mesmo (botão Modify). Um valor entre 7 e 14 dias cobre a maioria dos casos; o máximo é definido pela AWS.
Aí mesmo está a janela de cópia, a meia hora diária em que o RDS faz a cópia. Coloque-a numa hora de pouca atividade, em UTC.
Faça um instantâneo manual antes de uma alteração importante
Vai migrar a aplicação, mudar a versão do motor, apagar tabelas antigas. Antes disso, um instantâneo manual: selecione a instância, Actions, Take snapshot, e dê-lhe um nome descritivo com data. Numa instância Multi-AZ a cópia é feita a partir da réplica e não afeta o serviço; numa de uma só zona pode haver uma breve pausa nas escritas ao começar.
Os manuais não caducam: guardam-se até os apagar e são cobrados pelo espaço que ocupam (para além do que a AWS inclui gratuitamente, que equivale ao tamanho do seu armazenamento). Faça limpeza de vez em quando.
Restaurar a partir de um instantâneo
No menu Snapshots, selecione o que quer, Actions, Restore snapshot. O RDS pede-lhe um nome novo para a instância (por exemplo
tienda-restaurada-2026-10-26), o tamanho da instância, a VPC e a sub-rede. Reveja duas coisas que não se copiam da original e que é preciso escolher à mão: o grupo de segurança (caso contrário nascerá com o predefinido e a sua aplicação não conseguirá ligar-se) e o grupo de parâmetros, se usava um personalizado.Clique em Restore e espere. Demora minutos ou dezenas de minutos consoante o tamanho.
Restaurar para um ponto no tempo
Se o que aconteceu foi "alguém executou um DELETE sem WHERE às 11:42", não quer a cópia de ontem à noite: quer as 11:41. É para isso que servem as cópias automáticas: selecione a instância original, Actions, Restore to point in time, e escolha a data e a hora exatas dentro do período de retenção. O resto do formulário é igual ao do passo anterior, e também cria uma instância nova.
Verifique a base restaurada antes de a usar
Quando a nova instância estiver "Available", copie o seu ponto final (endpoint) do separador Connectivity. Ligue-se com o seu cliente habitual e verifique que os dados que procurava estão lá: a tabela apagada, a encomenda de antes das 11:42. Faça-o antes de mexer na aplicação.
Aponte a aplicação para a nova base de dados
Tem dois caminhos. O rápido: alterar a cadeia de ligação da aplicação para o novo ponto final. O limpo, se não se pode mexer na aplicação: renomear a instância antiga (por exemplo para
tienda-vieja) e depois renomear a restaurada com o nome original; o RDS atualiza o ponto final ao mudar o nome, embora demore alguns minutos e a cache de DNS possa atrasá-lo. Em ambos os casos, quando tudo funcionar durante uns dias, pare ou apague a instância antiga, que até lá é cobrada por inteiro.
O que pode correr mal
A aplicação não se liga à base restaurada
Quase sempre é o grupo de segurança: a instância nova nasceu com o predefinido. Modifique-a e atribua-lhe o grupo de segurança que a original tinha. A segunda causa mais habitual é a acessibilidade pública: se a original era acessível a partir de fora e a nova não, ou ao contrário, reveja essa opção.
O utilizador e a palavra-passe não funcionam
Os instantâneos conservam os utilizadores e as palavras-passe tal como estavam no momento da cópia. Se mudou a palavra-passe depois, a restaurada tem a antiga. Pode alterar a palavra-passe principal a partir da consola sem reiniciar.
Fiquei com duas bases de dados e a fatura subiu
Normal: a original e a restaurada são ambas cobradas enquanto existirem. É o preço de restaurar ser seguro. Quando confirmar com qual fica, faça um último instantâneo da outra e apague-a.
A cópia automática coincide com a hora de mais carga
As janelas de cópia e de manutenção estão em UTC. Se não as escolheu, a AWS atribuiu uma ao acaso. Mude-as para uma hora da madrugada no seu fuso horário, convertida para UTC.
No Simplio
No Simplio as bases de dados RDS e Lightsail aparecem ao lado das suas máquinas, com o botão de instantâneo, a lista de cópias com a sua data e o estado da instância à vista, e só para as pessoas a quem der essa permissão. Se uma cópia que devia ter sido feita não está lá, avisa-o por e-mail antes de precisar dela.
O mesmo, na AWS e no Simplio
| Na consola da AWS | No Simplio | |
|---|---|---|
| Cópia manual da base de dados | Consola do RDS, selecionar, Actions, Take snapshot: 4 cliques | Botão de instantâneo na base de dados: 1 clique |
| Ver que cópias existem | Menu Snapshots, filtrar por instância, região a região | Lista de cópias com data e tamanho no próprio cartão, todas as contas |
| Saber se falta uma cópia | Nada avisa | Aviso por e-mail |