[firebase-br] Copia do BD em uso

Magno System magnosysteminformatica em gmail.com
Sex Set 17 10:47:26 -03 2010


Quando falamos de um SGDB falamos de transações. No exemplo que você deu, um 
pico de luz, geraria uma inconsistência.

Portanto, em um SGDB, onde é importante a consistência deve-se usar 
transações. Em específico, neste caso, deveria abrir uma transação, 
cadastrar pais, 5 filhos e então commitar.

Ao usar uma transação para cada inserção de registro, subtende-se que um não 
depende do outro.

Agora se você aplicar corretamente o contexto de transação com certeza o 
BACKUP com o banco em uso não irá gerar inconsistência.

Ex: Você abre uma transação cadastra 1 registro pai e 5 filhos e fecha a 
transação.

Se o backup iniciar antes da transação ser commitada não será gravado o 
registro pai e não será gravado nenhum filho, mesmo que já tenha sido 
cadastrado, por exemplo, 1 pai e 2 filhos, visto que como a transação não 
foi commitada o backup não enxergará nenhum registro.

Somente será gravado se tiver sido commitada, neste caso então, gravará 
todos os registros.

Agora se você fizer a rotina de gravação do pai e dos filhos usando uma 
transação para cada registro gravado subtende-se que não é necessário manter 
uma consistência entre os registros. Neste caso, sim, ao restaurar o backup 
você terá por exemplo que gravar os dois filhos que o backup não pegou.

Agora, isto não é falha, visto que o contexto da transação foi escolhido por 
você.



----- Original Message ----- 
From: "Alysson Gonçalves de Azevedo" <agalysson em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, September 17, 2010 10:27 AM
Subject: Re: [firebase-br] Copia do BD em uso


Olha, apesar de me considerar um amador, vou chutar um palpite... qualquer
equivoco me corrijam.

Sobre backupear em pleno o uso, imagino que há dois casos:
  1º Um sistema que faz commits a todo tempo, no afterpost do cds, por
exemplo
  2º Um sistema que faz apenas 1 commit para cada conjunto de operações, por
exemplo, um botão "gravar", que faz apply de todos os cds e em seguida faz
commit.

vamos supor que vc tem um conjunto de 2 tabelas (tanto faz o
relacionamento), e que vão ser gravados 1 registro na tabela pai e 5 na
tabela filho... porem, antes dessa operação ser totalmente comcluida, alguem
inicia o backup...

no 1º sistema, a cada registro inserido, é feito commit, logo, se o backup
entrar nessas tabelas antes de todos os registros serem incluidos... isso
não causará corrupção, mas sim inconsistencia... pois apenas parte do
conjunto foi pro backup
supondo que o usuario restaure esse backup, ao invez de ter 1 pai e 5
registros filhos, vai ter 1 pai e 3 filhos, ou no pior dos casos, 5 filhos
sem 1 pai...

agora, no 2º sistema, será inserido o registro pai, depois os 5 filhos e,
então, o commit...
com isso, se o backup for feito antes do commit, não vai vir nenhum desses
registros, ou se o backup for feito depois do commit, todos os registros
estarão no backup... com isso, nao terá inconsistencia...

vale lembrar que é assim usando gbak, copiar e colar não rola.


Alysson Gonçalves de Azevedo
(11) 8491-7730

(\(''^_^ )/)

"Pobre vive dizendo que não tem nada, mas quando vem a enchente, ele sai
gritando: -Perdi tudo!!!"




Em 17 de setembro de 2010 09:51, Levy Moreira
<levymoreira.ce em gmail.com>escreveu:

> Uns dias atraz estava em discursão em uma empresa cliente da nossa, quando
> um concorrente disse que o sistema dele fazia backup a qualquer horario,
> bastando o usuario acionar o botão referente a mesma, então eu perguntei
> sobre a possibilidade de dar um problema nesse banco, pois ele vai copiar
> um
> BD em uso pleno, eu tenho mais de 20 pcs conectados a esse banco, ai eu
> tento copia-lo acho que nunca terei uma copia consistente, e ainda estarei
> correndo o risco de conrroper este banco... Bem,  isso é o que eu acredito
> que possa haver ao copiar um banco em uso, estou  correto? Ou o 
> concorrente
> esta com a razão? Já houve algum caso de perca de dados ou corrupção do
> banco poucausa de uma coisa dessas?
> Obrigado desde já.
>
> --
> Levy Moreira - Sistech Informática
> Juzeiro do Norte - Ce
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista