DUVIDA SQL EXPRESS 2005
Bom dia.
As perguntas são todas sobre o SQL Express 2005
1- O Express pode gerenciar até quantos bancos simultaneamente?
2- O limite de um banco nele é mesmo 4 GB?
3- Em função do limite de 4 GB, estou pensando em criar 2 bancos, um para o sistema e outro para auditoria do sistema (gravar todas as ocorrências de edição, exclusão e impressão, etc) Nesse caso eu teria de usar transações para garantir que as auditorias só sejam gravadas se o registro principal for concluÃdo. (isso está se tornando necessário, pois está começando a ocorrer vários problemas de os usuários dizerem que não fizeram nada e as informações estão sendo alteradas, e não tenho como saber quem foi o responsável, só em alguns itens especÃficos).
A Pergunta é: Posso criar uma transação entre dois bancos?
As perguntas são todas sobre o SQL Express 2005
1- O Express pode gerenciar até quantos bancos simultaneamente?
2- O limite de um banco nele é mesmo 4 GB?
3- Em função do limite de 4 GB, estou pensando em criar 2 bancos, um para o sistema e outro para auditoria do sistema (gravar todas as ocorrências de edição, exclusão e impressão, etc) Nesse caso eu teria de usar transações para garantir que as auditorias só sejam gravadas se o registro principal for concluÃdo. (isso está se tornando necessário, pois está começando a ocorrer vários problemas de os usuários dizerem que não fizeram nada e as informações estão sendo alteradas, e não tenho como saber quem foi o responsável, só em alguns itens especÃficos).
A Pergunta é: Posso criar uma transação entre dois bancos?
1 - Não há um limite para isso.
2 - Sim, 4GB segundo a própria Miocrosoft
3 - Creio que não existe problema quanto à isso, a transação em si, tem sempre como alvo um banco de dados.
2 - Sim, 4GB segundo a própria Miocrosoft
3 - Creio que não existe problema quanto à isso, a transação em si, tem sempre como alvo um banco de dados.
Citação::
1 - Não há um limite para isso.
2 - Sim, 4GB segundo a própria Miocrosoft
3 - Creio que não existe problema quanto à isso, a transação em si, tem sempre como alvo um banco de dados.
2- a versao 2008 r2 chega a 10
Seja 4 ou 10 gigabytes, é MUITA coisa. RarÃssimas vezes vi bancos de dados tão grandes e todas as vezes foram em multinacionais com um fluxo de informação absurdo. 4GB deve cobrir as necessidades até mesmo de clientes de grande porte. E um cliente que precise de mais do que isso, quer dizer que tem uma movimentação enorme, ou seja, um lucro também enorme e por isso pode pagar uma licença de servidor...
Sim acredito que 4GB seja mais que suficiente, pois tenho cliente que usarem meu sistema por 5 anos seguidos e o tamanho chegou até 14 MB, pois é muito otimizado e indexado.
Só sobre as transações, o que quero dizer é abrir uma transação e fazer operação em dois bancos diferenes, se falhar no segundo banco o que fiz no primeiro seja eliminado. Isso funcionará?
Kerplunk na sua resposta você citou como sendo o [Ô]alvo[Ô] um banco, mas no caso são 2 bancos na mesma transação.
Só sobre as transações, o que quero dizer é abrir uma transação e fazer operação em dois bancos diferenes, se falhar no segundo banco o que fiz no primeiro seja eliminado. Isso funcionará?
Kerplunk na sua resposta você citou como sendo o [Ô]alvo[Ô] um banco, mas no caso são 2 bancos na mesma transação.
Uma única transação não pode ser compartilhada em dois bancos diferentes em nenhum SGDB, isso viola o princÃpio da transação. Se o que você precisa é ter um banco como [Ô]mestre[Ô] e outro banco como [Ô]espelho[Ô], isso não deve ser feito por código e sim por replicação, que também está disponÃvel no SQL Express, para mais informações veja o aqui
Não é bem isso, não se trata de espelho.
Queria saber como resolver um EVENTUAL problema veja:
Banco Principal (uso do sistema normal) eu gravo uma alteração num cadastro de funcionário
Operação Ok bem sucedida.
Então na continuação da rotina de salvar, vou no Banco Auditoria e gravo o autor dessa alteração. Fulano Alterou Tabela Funcionário, Registro X de valor tal para valor tal.
Se essa segunda ação falhar, como evitaria de peder o registro dessa auditoria do sistema?
Se não posso usar transação nesse caso, há alguma solução para evitar perder essa informação? Supondo (n) motivos que tenham impedido o SGDB de gravar.
Queria saber como resolver um EVENTUAL problema veja:
Banco Principal (uso do sistema normal) eu gravo uma alteração num cadastro de funcionário
Operação Ok bem sucedida.
Então na continuação da rotina de salvar, vou no Banco Auditoria e gravo o autor dessa alteração. Fulano Alterou Tabela Funcionário, Registro X de valor tal para valor tal.
Se essa segunda ação falhar, como evitaria de peder o registro dessa auditoria do sistema?
Se não posso usar transação nesse caso, há alguma solução para evitar perder essa informação? Supondo (n) motivos que tenham impedido o SGDB de gravar.
Me parece que você está querendo fazer um log de atividades. Existem várias maneiras de se fazer isso, mas por código é uma das menos seguras. Você pode fazer triggers, pode usar um framework de log(e outras funcionalidades) como o Enterprise Library, serializar as classes de dados e gravar como texto... enfim, existem várias soluções para cada caso. Você teria que ver qual a melhor para você
Aqui na empresa nos usamos triggers guardando o valor anteriror e o valor atual.
Sim seria isso mesmo, um log de atividades só que não seria para todas as tabelas ou ações no banco, só nas Alterações e Exclusões de algumas tabelas, assim poderia identificar quem [Ô]Sabotou[Ô] os dados, pois hoje dizem que o software esta com mau funcionamento.
Dá para fazer Triggers no SQL Express? Nunca usei isso e sou novo no MS SQL.
Só não sei se nele daria para gravar: Usuário - Data - NomeTabela - Ação (Editrou ou Escluiu) e Valor Original e Valor Novo do que foi alterado
Dá para fazer Triggers no SQL Express? Nunca usei isso e sou novo no MS SQL.
Só não sei se nele daria para gravar: Usuário - Data - NomeTabela - Ação (Editrou ou Escluiu) e Valor Original e Valor Novo do que foi alterado
Então como falei, vai ter que ser um log parecido com o log do Enterprise Library mesmo. Visto que você vai fazer esse log apenas para algumas atividades.
Tópico encerrado , respostas não são mais permitidas