Prevenir exclusão acidental
Visão Geral
A funcionalidade "Proteção contra Exclusão" (ou "Delete Protection") do DBaaS atua como uma salvaguarda para prevenir a exclusão acidental ou não autorizada de instâncias postgres.
Quando essa funcionalidade está ativada para uma instância de DB, a instância não pode ser excluída diretamente. Para excluí-la, é necessário primeiro desativar a proteção. Isso adiciona uma etapa extra e intencional ao processo de exclusão, reduzindo significativamente o risco de perda de dados devido a um erro humano.
Cenários típicos de uso dessa proteção:
- Está funcionalidade é indispensável em bancos de dados que suportam aplicações em produção. Uma exclusão acidental aqui pode derrubar um e-commerce, um sistema bancário ou qualquer outro serviço vital, impactando diretamente usuários e a receita.
- Em equipes onde múltiplos desenvolvedores ou administradores de banco de dados têm acesso a instâncias, o risco de um comando errado ser executado aumenta. A proteção contra exclusão adiciona uma camada de confirmação, prevenindo desastres.
Avalie quais instâncias precisam da proteção
Ao criar uma nova instância, já avalie se ela precisa ser protegida contra exclusão. Dessa forma você evita problemas durante a configuração e uso futuro dessa instância, especialmente quando você já sabe que essa nova instãncia tem uma função crítica na sua arquitetura.
Lembre-se de ativar a proteção para todas as instâncias individualmente. Revise seus bancos de dados existentes e avalie quais deveria estar protegidos.
Limitações dessa proteção
A proteção contra exclusão não previne:
- Desligamento ou reinicialização de uma instância
- Modificação de uma instância (tipo, volume, frequência de snapshots, etc)
- Modificação ou exclusão de réplicas
- Exclusão de snapshots
Como ativar a proteção contra exclusão
- 🖥️ Console
- >_ CLI
Para bancos de dados existentes
-
Acesse o portal Magalu Cloud.
-
No painel inicial, clique em Database.
-
Abra os detalhes do banco de dados que deseja proteger
-
Na tela de detalhes, ative a opção "Proteção contra exclusão"
-
No diálogo de confirmação, clique Ativar
Agora essa instância não poderá ser excluída sem que antes essa opção seja previamente desmarcada.
Ao tentar excluir essa instãncia uma mensagem será exibida informando da situação.
Para novas instâncias
-
Inicie o processo de criação de uma nova instância
-
Preencha todos os campos obrigatórios
-
Na seção de Configurações Avançadas, marque a opção "Impedir a exclusão do banco de dados"
Essa nova instância já será criado com essa proteção ativa.
Caso você deseje executar alterações em um cluster, utilize o comando correspondente para clusters: dbaas clusters update.
Presumindo que você já se autenticou na CLI e tem um tenant pré-selecionado:
Para instâncias postgres existentes
-
Liste as instâncias ativas com o commando
mgc dbaas instances list --status="ACTIVE" -
Copie o
instance-idda instância postgres que deseja proteger. -
Execute o comando
dbaas instances updatecom a flagdeletion-protected:mgc dbaas instances update --deletion-protected="true" --instance-id="instance-id"Substituindo o
instance-idpelo valor copiado no comando anterior.
Para novos bancos de dados
-
Na criação de um novo banco de dados (comando
dbaas instances create), adicione a flag--deletion-protected=truepara que o novo banco já venha protegido contra exclusão. Veja abaixo um exemplo.mgc dbaas instances create --engine-id="8bbe8e01-40c8-4d2b-80e8-189debc44b1c" --instance-type-id="063f3994-b6c2-4c37-96c9-bab8d82d36f7" --name="test_db" --user="dbuser" --password="dbpass@1" --volume.size=10 --deletion-protected="true"Substitua os valores de
engine-ideinstance-type-idpara aqueles que melhor atendam a sua necessidade.Veja mais detalhes em "Como criar uma nova instância postgres".
Como desativar a proteção contra exclusão
- 🖥️ Console
- >_ CLI
-
Acesse o portal Magalu Cloud.
-
No painel inicial, clique em Database.
-
Abra os detalhes da instância postgres que deseja proteger
-
Na tela de detalhes, desative a opção "Proteção contra exclusão"
-
Siga as instruções
⚠️ Agora essa instãncia postgres poderá ser excluída!
Presumindo que você já se autenticou na CLI e tem um tenant pré-selecionado:
-
Liste as instâncias ativas com o commando
mgc dbaas instances list --status="ACTIVE" -
Copie o
instance-idda instância que deseja remover a proteção. -
Execute o comando
dbaas instances updatecom a flagdeletion-protectedcomofalse:mgc dbaas instances update --deletion-protected="false" --instance-id="instance-id"Substituindo o
instance-idpelo valor copiado no comando anterior.⚠️ Agora essa instãncia postgres poderá ser excluído!