[firebase-br] RES: RES: RES: RES: RES: RES: Rotina de Backup/Restore

Daniel Fernandes daniel em agriness.com
Sex Jan 22 08:24:32 -03 2010


Suponhamos que o cliente esteja usando o sistema e precise recuperar uma
cópia do banco do dia anterior. Eu quero que ele faça o restore direto da
própria aplicação, "com o banco rodando". Não quero que ele tenha que fechar
o programa para poder recuperar o banco. É mais ou menos isso.
[],


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Felix
Enviada em: quinta-feira, 21 de janeiro de 2010 18:54
Para: 'FireBase'
Assunto: [firebase-br] RES: RES: RES: RES: RES: Rotina de Backup/Restore

Dando shutdown ainda seria possível fazer o backup?

E eu ainda não entendi para que serve fazer um backup e restore em um banco
que está em uso...

Fco. Felix
Desenvolvimento de Sistemas
www.soltecnologia.com.br


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Eduardo Bahiense
Enviada em: quinta-feira, 21 de janeiro de 2010 15:57
Para: lista em firebase.com.br
Assunto: Re: [firebase-br] RES: RES: RES: RES: Rotina de Backup/Restore

Olá

Vamos tentar esclarecer as coisas:
1. O backup pode ser realizado com o banco rodando. O FB não exige 
acesso exclusivo para executar o GBAK.
2. O que você quer, na verdade, é uma maneira de impedir que o FB acesse 
o seu banco para você poder substituí-lo por uma cópia proveniente da 
restauração do backup, ainda que você esteja fazendo isso na mesma 
operação (Gbak - REP)
3. Nenhum SGBD existente conseguirá sobreescrever um arquivo em uso.
4. Para contornar a limitação em [3.] você terá que conseguir que todos 
os clientes conectados se desconectem e impedir que eles reconectaem até 
que o processo de restauração esteja concluído.
5. Não vejo como evitar a tentativa de conexão ao banco a não ser por 
algum semáforo criado pela aplicação onde, antes de conectar, a 
aplicação verifique se o processo de restore não está em andamento. 
Observe que, para esse fim, o próprio FB não conseguirá conectar 
enquanto o banco está sendo restaurado, retornando um erro, e isso, se 
tratado pela aplicação, será suficiente para avisar ao usuário que não 
foi possível conectar.
6. O "X" da questão, então, está em se conseguir desconectar todos os 
clientes, obter acesso exclusivo, completar o processo de backup e 
iniciar sua retauração.
7. Não pesquisei, mas me parece que você deve:
   a. Colocar o banco em SHUTDOWN - Isso desconectará todos os clientes, 
mas SHUTDOWN é um pedido ao SGBD que nem sempre pode ser atendido e sua 
aplicação terá que ceckar isso.
   b. Iniciar o processo de backup
   c. Restaurar
   d. Retirar o SHUTDOWN
8. Uma outra opção seria:
   a. Parar o Serviço FB
   b. Renomear o banco
   c. Reiniciar o Serviço (quem tentar conectar não encontrará o 
arquivo, pois foi renomeado)
   d. Fazer bkp/restore
   e. RE-Renomear

Não vou nem questionar como é o processo com o ACCESS, mas qualquer SGBD 
que você for lidar terá que passar por algo muito parecido ao que listei 
acima.

Eduardo



Olá Felix,
É que o sistema, desenvolvido aqui na empresa, tem uma opção de fazer 
backup e restore dentro do próprio software. Com Access, isso funcionava 
perfeitamente, bastava eu desconectar da base antes de começar os 
procedimentos. Mas com Firebird, para poder fazer o restore, por 
exemplo, eu tenho que fechar toda minha aplicação (não basta apenas 
fechar a conexão do banco). E se eu tiver que fechar a aplicação para 
fazer um restore, não tem lógica eu manter a opção de fazer restore 
dentro da aplicação. Acho que não tem como fugir disso, vou ter mesmo 
que fazer uma aplicação separada só para backup/restore  ;)
Vlw,
qqr outra dica, manda pra lista.



______________________________________________
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