[firebase-br] RES: Migrando Firebird do Linux para Windows Server 2003

Carlos H. Cantu listas em warmboot.com.br
Qui Abr 22 21:26:06 -03 2010


CC> Depois de 1 semana de trabalho em cima desse problema, o saldo é o seguinte:
->> Nas units que apresentaram problema no Delphi não encontramos nada na 
CC> programação dos eventos que justificasse o fato do programa conseguir 
CC> executar o ApplyUpdate quando o banco está num servidor Linux - e 
CC> simplesmente travar quando o banco roda num WinServer2003 x64.

Você chegou a usar o fbscanner pra saber o que o banco está fazendo
quando vc diz que ele "travou"?

->> Realizar o backup no Linux e restaurá-lo no Windows também não 
CC> funcionou - independente de rodar o gfix antes de executar o gbak (em 
CC> todas as combinações possíveis de parâmetros...) - ou de realizar 
CC> sucessivos backups e restores do banco.
->> Realizar o backup e o restore dentro do Linux e depois mover (copiar) 
CC> o banco para Windows não funcionou.
->> Copiar o banco para o Windows e realizar backup e restore dentro do 
CC> próprio Windows não funcionou.

Quando você diz "não funcionou", vc quer dizer que não conseguiu
restaurar o backup, ou que o banco restaurado apresentou o problema de
"travamento"?

CC> Conseguimos rodar o banco normalmente no Windows apenas em duas situações:
CC> 1) Fizemos backup dos metadados do banco no Linux e recriamos o banco (a
CC> partir do metadata) dentro o Windows, vazio.
CC> 2) Após restaurar o backup (normal, contendo todos os dados do banco) 
CC> dentro do Windows (independente do backup ter sido gerado em Linux ou 
CC> Windows), excluímos as tabelas utilizadas pelas units do sistema que 
CC> executam ApplyUpdate e em seguida recriamos as tabelas (vazias).

Em ambos os casos, aparentemente o que está fazendo diferença é o fato
das tabelas estarem vazias.

CC> 2) Depois de excluir as tabelas "problemáticas" e recriá-las estamos
CC> tendo dificuldade para recriar as chaves estrangeiras (problemas com 
CC> índices...). Só conseguimos recriar as chaves estrangeiras quando 
CC> excluimos e recriamos também a tabela a qual a chave estrangeira pertence...

Como assim? O que acontece quando você tenta criar a chave
estrangeira?

CC> Ainda penso que o ideal seria conseguir levar o banco do Linux para 
CC> Windows através de um backup/restore (bem menos traumático do que ficar
CC> excluindo tabelas e exportando/importando dados) - mas depois de 
CC> numerosas e exaustivas tentativas começo a acreditar que isso não é 
CC> possível... pelo menos em nosso caso.

O normal é justamente isso: backup e restore. Eu nunca vi um caso como
o seu. Provavelmente há algo muito específico no seu banco, ambiente
ou no próprio sistema que está gerando essa situação.

Você já tentou reproduzir o problema criando uma aplicação bem simples
que acesse o banco e realize alguma operação nessas tabelas,
utilizando applyupdates?

Outros pontos a serem observados:

Não existe versão 64 bits do Firebird 2.0.3 para Windows, portanto, vc
deve estar usando a versão 32bits do Firebird p/ Windows, que vai
restringir a quantidade de memória que ele poderá utilizar. Já para
Linux, existe versão 64 bits do FB 2.0

A última versão do Firebird 2.0 disponível é a 2.0.5. Sugiro que você
teste com ela, ou se possível, teste com o Firebird 2.1.3 (64 bits).

Para testar, eu também sugiro que desligue temporariamente qualquer
antivirus do servidor, e também o "system restore" do Windows.

[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br





Mais detalhes sobre a lista de discussão lista