Tarefas gerais de manutenção
A maioria das tarefas de manutenção pode ser feita sem colocar o site ou o aplicativo offline se você tiver replicação de banco de dados . Você removerá um banco de dados do conjunto de réplicas, aplicará o que precisar e o conectará novamente ao seu conjunto de réplicas. Enquanto estiver desligado, outros bancos de dados manterão a solução em execução.
Alterando o esquema do banco de dados
Quando você precisar atualizar seu esquema de banco de dados , será forçado a reduzir sua solução por alguns minutos (ou para um estado de somente leitura) SE as quebras de alteração a versão antiga. Se seu novo esquema apenas criar tabelas ou campos, ele não afetará uma versão antiga 1 , portanto, esse tipo de alteração de esquema pode ser feito online 2 e usando uma Implementação do Blue-Green para que seu aplicativo obtenha alta disponibilidade.
Se o novo esquema renomear um campo existente ou removê-lo, para atingir 100% do tempo de atividade, você precisará seguir estas etapas:
Renomeando um campo
- Se você precisar renomear de A para B, aplique uma alteração de esquema que adicione um novo campo B e duplique um conteúdo. Além disso, mantenha A intacta.
- Implante um novo aplicativo que use o campo B e não use o campo A.
- Aplique uma alteração de esquema que remova A.
Removendo um campo
- Não aplique nenhuma alteração de esquema.
- Implante um novo aplicativo que não use o campo que será removido.
- Aplique uma alteração de esquema que remova o campo.
Nota 1 : algumas ferramentas ORM, como o .NET Entity Framework, associam cada alteração de esquema a um ID de migração. Portanto, quando você implanta uma nova versão de esquema, os aplicativos antigos são quebrados instantaneamente. Também é evitável se você desativar este verifique .
Nota 2 : se o seu novo esquema adicionar uma restrição única, uma chave check ou uma chave estrangeira, o comando alter table pode precisar de algum tempo significativo se você tiver milhares de linhas. Enquanto a tabela de alteração está sendo processada, a tabela será bloqueada até mesmo para seleções e isso pode levar a alguns tempos limite de consulta, dependendo do tamanho dos seus dados.