none
Log de transações no banco RRS feed

  • Pergunta

  • Bom dia.

    Preciso fazer o log de tudo que for feito num banco de dados, mas, se possível, fora da tabela, para não impactar em performance.

    Só em uma dessas tabelas, deverá ter 50 milhões de registros no ano.

    Me sugeriram esse sistema: http://logging.apache.org/log4net/release/features.html , mas queria saber de vocês se existem outras opções que podem ser usadas para fazer esse log.

    Obrigado.

    Gustavo

    sexta-feira, 17 de dezembro de 2010 12:42

Respostas

  • Gusvato,

    O problema é dar manutenção nesse código.

    Usar ferramentas de archive de BD é uma alternativa, mas geralmente não se tem uma organização próxima de como os dados são relevantes para o negócio.

    Pra mim a melhor solução pra isso é baseada em AOP, visto que aparentemente trata-se de um log de auditoria, não de um log de probelmas no sistema.

    Para logs de problema log4net. Para log de "negócio", AOP.

     

    Você acha informações sobre como construir isso, baseado em Spring.Net (existem outras implementações de AOP) em:

    http://ericlemes.com/2009/10/23/dotnet-spring-pt4/

     

    Att.,

    Eric

    sexta-feira, 17 de dezembro de 2010 16:19

Todas as Respostas

  • Gustavo,

    O próprio banco de dados tem uma geração de logs. Verifique o manual do banco.

    Agora, se o que vc quer é gravar toda ação feita num sistema. Aí você tem que fazer programaticamente, como a estrutura (arquivo formato .CVS):

    exemplo:

    ID; modulo; acao; informacao; loginusuario; data; hora
    1; Cadastro de fornecedores; Inclusão; cadastrado joao da silva;Maria; 12/08/3874; 00:23
    2; Cadastro de fornecedores, Exclusão; excluído Sebastiana Conceição Filha de Deus;Maria; 03/01/2322; 15:00

    por aí vai..

    Att.


    Anderson
    Cuiabá-MT
    sexta-feira, 17 de dezembro de 2010 13:11
  • Gustavo,

     

    Aqui na empresa nós criamos um windows service que faz a chamanda do Profiler do SQL e os (insert, update e delete) feito nos bancos dos clientes é gravado em uma tabela. Hoje nós temos 13 bancos em nosso servidor.

    A solução é baseada nesse exemplo:

    http://www.codeproject.com/KB/database/TSQL-profiler.aspx

     

    [], espero que ajude

     

    sexta-feira, 17 de dezembro de 2010 13:14
  • Obrigado, vou ver essa solução e ver se atende o que precisamos.
    sexta-feira, 17 de dezembro de 2010 13:26
  • Oi Anderson.

    Pois é, o banco tem, mas foi pedido que eu procurasse alguma solução alternativa.

    Valeu pela dica do cvs.

    Gustavo

    sexta-feira, 17 de dezembro de 2010 13:27
  • Gusvato,

    O problema é dar manutenção nesse código.

    Usar ferramentas de archive de BD é uma alternativa, mas geralmente não se tem uma organização próxima de como os dados são relevantes para o negócio.

    Pra mim a melhor solução pra isso é baseada em AOP, visto que aparentemente trata-se de um log de auditoria, não de um log de probelmas no sistema.

    Para logs de problema log4net. Para log de "negócio", AOP.

     

    Você acha informações sobre como construir isso, baseado em Spring.Net (existem outras implementações de AOP) em:

    http://ericlemes.com/2009/10/23/dotnet-spring-pt4/

     

    Att.,

    Eric

    sexta-feira, 17 de dezembro de 2010 16:19
  • Valeu Eric, vou ver esse artigo que você mandou.

    sexta-feira, 17 de dezembro de 2010 16:37