O Adobe Campaign fornece um workflow incorporado que permite agendar determinadas tarefas de manutenção de banco de dados: o fluxo de trabalho de limpeza do banco de dados. Esse workflow executa as seguintes tarefas:
Observe que a tarefa de limpeza lida principalmente com a manutenção no nível do aplicativo, não com a manutenção no nível do RDBMS (com exceção da atualização de estatísticas). No entanto, as operações de manutenção serão necessárias no banco de dados. Mesmo que o workflow de limpeza do banco de dados seja executado com êxito, isso não significa que o banco de dados esteja ajustado da maneira ideal.
O fluxo de trabalho de limpeza do banco de dados não inclui nenhuma ferramenta de manutenção de banco de dados: cabe a você organizar a manutenção. Para fazer isso, é possível:
Esses procedimentos de manutenção devem ser executados regularmente e devem incluir o seguinte:
Você precisa encontrar os slots apropriados para executar essas atividades de manutenção. Eles podem afetar fortemente o desempenho do banco de dados durante a execução ou até mesmo bloquear o aplicativo (devido ao bloqueio).
Normalmente, essas tarefas são executadas uma vez por semana durante um período de baixa atividade que não entra em conflito com backups, recarregamento de dados ou cálculo agregado. Alguns sistemas altamente solicitados requerem manutenção mais frequente.
Uma manutenção mais detalhada, como reconstruções completas de tabela, pode ser executada uma vez por mês, de preferência com aplicativos totalmente interrompidos, já que o sistema não pode ser usado de qualquer maneira.
Várias estratégias estão disponíveis:
Operações | Descrição | Benefícios | Desvantagens |
---|---|---|---|
Desfragmentação online |
A maioria dos mecanismos de banco de dados fornece métodos de desfragmentação. |
Basta usar o método de desfragmentação de banco de dados. Esses métodos geralmente cuidam dos problemas de integridade, bloqueando os dados durante a desfragmentação. |
Dependendo do banco de dados, esses métodos de desfragmentação podem ser fornecidos como uma opção RDBMS (Oracle) e nem sempre são a maneira mais eficiente de lidar com tabelas maiores. |
Despejar e restaurar |
Despeje a tabela para um arquivo, exclua a tabela no banco de dados e restaure do despejo. |
Essa é a maneira mais fácil de desfragmentar uma tabela. Também é a única solução quando o banco de dados está quase cheio. |
Como a tabela é excluída e recriada, o aplicativo não pode ser deixado online, mesmo no modo somente leitura (a tabela não está disponível durante a fase de restauração). |
Duplicar, renomear e soltar |
Isso cria uma cópia de uma tabela e seus índices, elimina a existente e renomeia a cópia para ocupar seu lugar. |
Esse método é mais rápido que a primeira abordagem, pois gera menos IOs (nenhuma cópia como arquivo e a leitura desse arquivo). |
Requer o dobro de espaço. Todos os processos ativos que gravam na tabela durante o processo devem ser interrompidos. No entanto, os processos de leitura não serão afetados, pois a tabela é trocada no último momento depois de recriada. |