Tempo aproximado para leitura: 00:02:15 min
Dúvida
Em determinados cenários é necessário realizar a limpeza dos registros do log de Auditoria Zlog, principalmente no que se refere à performance do sistema. Como realizar essa limpeza?
Ambiente
Framework - Framework (Linha RM) - Banco de Dados - A partir da versão 12.1
Solução
A limpeza de registros na tabela ZLOG ocorre quando é gerado o relatório de Log (Log de Auditoria - Log). Dessa forma, o processo de limpeza é realizado de acordo com a parametrização do campo Nº de Dias do Log.
O processo deve ser realizado manualmente, ou seja, para realizar a limpeza, faz-se necessária a geração do relatório para disparar o processo.
O campo Nº de dias log, é a quantidade de dias que serão armazenados as informações do log de auditoria, no banco de dados. Ou seja, se o usuário informa 10, como no exemplo, serão armazenadas todas as informações dos últimos 10 dias. É importante lembrar que, dependendo da quantidade de campos selecionados pelo usuário para ser auditado, a tabela de log (ZLOG) pode assumir grandes proporções que podem interferir no gerenciamento do banco de dados.
Caso o processo de exclusão apresente erro de Timeout, recomendo que execute o processo em diversas etapas, reduzindo a quantidade de registros que serão excluídos em cada execução. Reduzindo a quantidade de dias aos poucos, exemplo: 360 dias, 340 dias, 310 dias, 290 dias.
- Truncated
Caso a inconsistência persista, devido a quantidade de registros da tabela ZLOG, o processo de exclusão pela aplicação representará uma carga muito alta, possivelmente caracterizando a não conclusão do processo. Sendo assim, recomendamos que a exclusão seja realizada diretamente pelo Banco de Dados (truncated):
Oracle: TRUNCATE
SQL Server: TRUNCATE TABLE
- Export/Backup
Caso necessário, realize um Export dos registros da tabela ZLOG ou backup da Base de Dados para possíveis consultas futuras.
Oracle: Exportação de Dados no Oracle
SQL Server: Criar um backup de banco de dados
- Avaliação dos itens auditados
Após a exclusão dos registros, recomendo que verifique as seguintes considerações sobre o Log de Auditoria:
Quanto mais campos e tabelas forem auditados, mais recursos de hardware (servidor) são necessários. Se o LOG for usado com critério, não haverá degradação de performance. A perda de performance vai depender de dois fatores inversamente proporcionais:
O quanto de nossos processos estamos auditando X O quanto de Recursos de Máquina temos disponível.
Quando falamos em performance temos que nos atentar a algumas regras que devem ser cuidadosamente analisadas. Devemos marcar somente os campos que realmente têm necessidade de auditoria.
Exemplo:
Se marcarmos o campo Salário ta tabela PFUNC, este campo não sofre alterações a todo momento. Não há impacto sobre performance.
Ao contrário, se marcarmos um campo de uma tabela sofre alterações constantes, por exemplo, valor original da tabela de Lançamentos, suponhamos que o cliente processa em média 200 lançamentos por dia... isso pode ocasionar perda de performance, pois a trigger estará sendo executada a todo momento. É importante salientar que não há como afirmar que haverá perda de performance, pois vários fatores contribuem para isso como configuração de máquina e rede. Quanto mais parrudo o servidor for, menos impactos teremos na performance.
Temos relatos de clientes que auditam tabelas que sofrem alterações constantes e nem por isso perderam performance. Porém, sabemos que seu ambiente é hiperdimensionado.
Importante
O Log é armazenado no banco pelo número de dias parametrizado pelo usuário. Se informado 20 dias, a tabela mantém os registros dos últimos 20 dias.
Vale ressaltar que dependendo da quantidade de campos auditados e dias para armazenamento, a tabela de LOG pode assumir proporções gigantescas que podem interferir no gerenciamento do SGDB.
O mais importante é ter critério e selecionar para Log somente o que é necessário.
Saiba mais
Para o novo modelo do log de auditoria, a partir da versão 12.1.24, acesse o nosso artigo Framework - Framework RM - BD - Habilitar novo Log de Auditoria
0 Comentários