DUVIDA SQL EXPRESS 2005

LUIS.HERRERA 16/03/2012 08:53:40
#397276
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?
KERPLUNK 16/03/2012 09:33:34
#397279
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.
LVFIOROT 16/03/2012 09:45:14
#397281
Resposta escolhida
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
KERPLUNK 16/03/2012 09:51:50
#397282
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...
LUIS.HERRERA 16/03/2012 10:39:47
#397287
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.
KERPLUNK 16/03/2012 10:53:34
#397289
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
LUIS.HERRERA 16/03/2012 11:33:53
#397300
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.
KERPLUNK 16/03/2012 11:57:15
#397304
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ê
LVFIOROT 16/03/2012 13:57:55
#397320
Aqui na empresa nos usamos triggers guardando o valor anteriror e o valor atual.
LUIS.HERRERA 16/03/2012 14:02:41
#397321
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
KERPLUNK 16/03/2012 14:07:51
#397322
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.
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas