Historico de banco
Precisando de ajuda sobre um assunto pouco questionado, sobre o historico no banco de dados, devo faze-lo desde o inicio/criação do BD?
Mario Holanda
Curtidas 0
Respostas
William
21/02/2016
Você está se referindo a alterações DDL?
Se for isso já vi profissionais versionarem o script .sql, usando ferramentas como Git.
Se for isso já vi profissionais versionarem o script .sql, usando ferramentas como Git.
GOSTEI 0
Marcos P
21/02/2016
Mario,
Exatamente o que você quer disser com "histórico no banco de dados" ?
Exatamente o que você quer disser com "histórico no banco de dados" ?
GOSTEI 0
Mario Holanda
21/02/2016
Obrigado aos senhores...
Não entendi a questão de usar o Git William.
Marcos P, historico de operações do banco: insert, delete, update, select(creio que não tanto).
Não entendi a questão de usar o Git William.
Marcos P, historico de operações do banco: insert, delete, update, select(creio que não tanto).
GOSTEI 0
William
21/02/2016
Não entendi a questão de usar o Git William.
Esse caso são é para operações que envolvem alterações na estrutura do banco de dados, adiciona um campo, procedure ou trigger e extrai um script .sql com a estrutura, dessa maneira vc comita identificando as modificações.
Nada relacionado aos dados que estão nas tabelas!
GOSTEI 0
Mario Holanda
21/02/2016
Historico fora dessa questão do git, correto?
GOSTEI 0
Marcos P
21/02/2016
Sua pergunta foi mal formulada e, portanto, fica difícil ficar adivinhando as coisas...
Se sua necessidade é logar as operações de manipulação de dados ( insert / delete / update ), crie uma tabela com a mesma estrutura básica ( sem chaves, indices e outras constraints ) da tabela a ser controlada. Depois crie triggeres que, a partir da operação na tabela original, registrem os ajustes de dados nas tabelas secundária. Repita o processo para cada tabela em que seja necessário registro dessas alterações.
Existem outras maneiras de fazer isso, mas essa, na minha opinião, acaba sendo a mais prática.
A questão de uso do GIT, tem a ver com o controle do script sql de criação do banco de dados ( ou qualquer outro script sql associado ). Você pode usar o versionador para, gerando scripts a cada alteração na ESTRUTURA do banco, controlar os ajustes realizados no esquema dos objetos.
Acho que é isso...
Se sua necessidade é logar as operações de manipulação de dados ( insert / delete / update ), crie uma tabela com a mesma estrutura básica ( sem chaves, indices e outras constraints ) da tabela a ser controlada. Depois crie triggeres que, a partir da operação na tabela original, registrem os ajustes de dados nas tabelas secundária. Repita o processo para cada tabela em que seja necessário registro dessas alterações.
Existem outras maneiras de fazer isso, mas essa, na minha opinião, acaba sendo a mais prática.
A questão de uso do GIT, tem a ver com o controle do script sql de criação do banco de dados ( ou qualquer outro script sql associado ). Você pode usar o versionador para, gerando scripts a cada alteração na ESTRUTURA do banco, controlar os ajustes realizados no esquema dos objetos.
Acho que é isso...
GOSTEI 0
Mario Holanda
21/02/2016
Pode ser realmente uma pergunta mal formulada, mas queria apenas um historico das operações citadas, não imaginei que pudesse ser complicado, mas ajudou, vou pesquisar sobre o que disse.
GOSTEI 0
Mariana Carvalho
21/02/2016
Boa tarde a todos, não lembro bem a função do SQL Profile, se puderem confirmar se tem relação com o post por favor sinalizem.
GOSTEI 0
Alan Mario
21/02/2016
Isso não é monitorar?
GOSTEI 0
Marcos P
21/02/2016
SQL Profiler é um trace ( sniffer ) do Sql Server.
Com ele é possível monitorar TODAS as transações submetidas ao servidor de banco de dados.
Também é possível criar diversos tipos de filtro, para restringir a análise à determinado usuário, processo, objeto, tabela, etc, etc, etc...
Aplica-se no tunning, auditoria e suporte ao funcionamento do banco de dados em ambiente de produção.
Como a necessidade descrita no post é de log, o Profiler consegue detectar as operações de atualização, mas não consegue armazená-las em uma tabela específica de log.
Ou seja, não serve para a necessidade do Mario.
Com ele é possível monitorar TODAS as transações submetidas ao servidor de banco de dados.
Também é possível criar diversos tipos de filtro, para restringir a análise à determinado usuário, processo, objeto, tabela, etc, etc, etc...
Aplica-se no tunning, auditoria e suporte ao funcionamento do banco de dados em ambiente de produção.
Como a necessidade descrita no post é de log, o Profiler consegue detectar as operações de atualização, mas não consegue armazená-las em uma tabela específica de log.
Ou seja, não serve para a necessidade do Mario.
GOSTEI 0
Jothaz
21/02/2016
O Marcos P tem razão, para auditoria o Profiler não é indicado, além do que pode ser pesado na execução.
Se quer gerar um "trilha de auditoria" do que esta acontecendo no banco de dados o caminho é fazer algo na mão mesmo que pode ser:
1-Triggers nas tabela para principais operações.
2-Via aplicação de forma que qualquer chamada ao banco de dados seja gravada em um tabela especifica de log.
3-Usar alguma ferramenta de log: Log$net ou Nlog se não me engano o Nlog grava até em banco de dados.
São soluções braçais e trabalhosa, mas é um forma de você garantir que todas as operações sejam armazenadas.
Sei que nas versões Enterprise do SQL Server 2008 R2 e 2012 existe uma opção de auditoria, mas nunca usei, pois normalmente nas empresas em que presto consultoria tem área de banco de dados. Mas pesquise sobre auditoria no SQL Server 2008 ou 2012 que irá acha conteúdo.
Se quer gerar um "trilha de auditoria" do que esta acontecendo no banco de dados o caminho é fazer algo na mão mesmo que pode ser:
1-Triggers nas tabela para principais operações.
2-Via aplicação de forma que qualquer chamada ao banco de dados seja gravada em um tabela especifica de log.
3-Usar alguma ferramenta de log: Log$net ou Nlog se não me engano o Nlog grava até em banco de dados.
São soluções braçais e trabalhosa, mas é um forma de você garantir que todas as operações sejam armazenadas.
Sei que nas versões Enterprise do SQL Server 2008 R2 e 2012 existe uma opção de auditoria, mas nunca usei, pois normalmente nas empresas em que presto consultoria tem área de banco de dados. Mas pesquise sobre auditoria no SQL Server 2008 ou 2012 que irá acha conteúdo.
GOSTEI 0
Mariana Carvalho
21/02/2016
Obrigada, não lembrava bem dessa questão.
GOSTEI 0
Alan Mario
21/02/2016
Alguns termos se parecem bastante, tambem me perco Mariana.
GOSTEI 0