[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