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 de banco de dados.
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 esse novo banco de dados 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 esse banco de dados não poderá ser excluído sem que antes essa opção seja previamente desmarcada.
Ao tentar excluir esse banco de dados uma mensagem será exibida informando da situação.
Para novos bancos de dados
-
Inicie o processo de criação de um novo banco de dados
-
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"
Esse novo banco de dados já será criado com essa proteção ativa.
Presumindo que você já se autenticou na CLI e tem um tenant pré-selecionado:
Para bancos de dados existentes
-
Liste as instâncias ativas com o commando
mgc dbaas instances list --status="ACTIVE"
-
Copie o
instance-id
do banco de dados que deseja proteger. -
Execute o comando
dbaas instances update
com a flagdeletion-protected
:mgc dbaas instances update --deletion-protected="true" --instance-id="instance-id"
Substituindo o
instance-id
pelo 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=true
para 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-id
einstance-type-id
para aqueles que melhor atendam a sua necessidade.Veja mais detalhes em "Como criar uma nova instância de banco de dados".
Como desativar a proteção contra exclusão
- 🖥️ Console
- >_ CLI
-
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, desative a opção "Proteção contra exclusão"
-
Siga as instruções
⚠️ Agora esse banco de dados poderá ser excluído!
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-id
do banco de dados que deseja remover a proteção. -
Execute o comando
dbaas instances update
com a flagdeletion-protected
comofalse
:mgc dbaas instances update --deletion-protected="false" --instance-id="instance-id"
Substituindo o
instance-id
pelo valor copiado no comando anterior.⚠️ Agora esse banco de dados poderá ser excluído!