Guia prático: saiba como migrar Firebird 2.5 para 3.0

Versões antigas do banco de dados impedem a criação de aplicativos. Por isso, migrar Firebird 2.5 para 3.0 é essencial nas software houses.


Se a sua software house trabalha com o banco de dados Firebird, você muito provavelmente já se deparou com as dificuldades de criar um aplicativo para o seu ERP. Esse é um cenário muito comum quando as versões estão desatualizadas e atrasadas. Logo, existe a necessidade de atualizar Firebird para uma versão mais recente.

A ideia é que os problemas relacionados à integração de APIs sejam reduzidos e você consiga, por fim, iniciar o desenvolvimento do seu app. Enquanto a versão 3.0 é ideal para essa tarefa, é muito comum que empresas de tecnologia ainda utilizem versões inferiores.

Aqui na TecnoSpeed, vemos muitos casos de software houses que precisam migrar Firebird 2.5 para 3.0 a fim de integrar nossas soluções em seus produtos. Assim, desenvolvemos este artigo no intuito de explicar como realizar essa atualização e ajudar a fazer a atualização de forma eficaz.

As dificuldades no uso do Firebird

O Firebird é um banco de dados de código aberto, livre para ser usado em qualquer aplicação de forma gratuita. Esse fato é um facilitador para uma empresa de tecnologia na hora de escolher a ferramenta para trabalhar.

Trata-se de um produto estável, com mais de 20 anos no mercado. Por isso, é natural que tenha várias versões disponíveis. Porém, o Firebird peca na escalabilidade, por isso criar uma versão em aplicativo do ERP é uma tarefa complexa.

Várias APIs e aplicações podem enfrentar problemas de corrupção de dados fora da versão 3.0. Isso impede a correta integração ao app, gerando diversos erros na construção. Além disso, pode ocupar uma memória considerável, também dificultando as ações do software.

Dicas para migrar Firebird 2.5 para 3.0

Para a atualização do banco de dados Firebird, você precisa avaliar uma série de questões. A base precisa ser preparada para a conversão, verificando-se a compatibilidade dos metadados dentre as versões. É importante ressaltar ainda que o processo tem suas variáveis de acordo com o sistema operacional (Windows/Linux).

Porém, independentemente desse fator, antes de realizar qualquer alteração no seu banco de dados, é essencial criar um backup da database. A sugestão é usar uma ferramenta gbak para fazer a restauração. Lembre que todos os objetos com BLR precisam ser recompilados.

Basta fazer o backup no sistema 2.5 e, após instalar a nova versão, restaurar o arquivo. Outra opção — nos casos de bases de dados muito grandes principalmente— é usar a conversão por stream, que acelera o processo em até 30%.

O gbak do Firebird 2.5 faz o backup sequencialmente, direcionando para o stdout stream. Esse, por sua vez, é lido na mesma hora pelo gbak da versão 3.0, criando um novo banco de dados.

Outro ponto a considerar é que cada versão do Firebird tem um formato diferente de ODS (on-disk structure). Na 3.0, a ferramenta só funciona com ODS 12.0. Assim, é preciso instalar essa versão para fazer a atualização do seu banco de dados e apostar na versão móvel dos seu ERP.

Atualizar Firebird no Windows

Migrar Firebird 2.5 para 3.0 no Windows requer um conjunto específico de arquivos para o sistema. Uma forma é pegar o arquivo embutido da versão 2.5, renomear fbembed.dll para fbclient.dll e adicionar gbak.exe — você também pode adicionar juntamente o arquivo isql.exe, se quiser.

A segunda maneira de fazer a atualização é pelo arquivo padrão do Firebird 3.0. O conjunto de arquivos exigido inclui os seguintes:

  • 25/gbak.exe
  • 25/fbclient.dll
  • 25/firebird.conf
  • 25/firebird.log
  • 25/firebird.msg
  • 25/ib_util.dll
  • 25/icudt30.dll
  • 25/icuin30.dll
  • 25/icuuc30.dll
  • 25/Microsoft.VC80.CRT.manifest
  • 25/msvcp80.dll
  • 25/msvcr80.dll
  • 30/fbclient.dll
  • 30/firebird.conf
  • 30/firebird.msg
  • 30/gbak.exe
  • 30/ib_util.dll
  • 30/icudt52.dll
  • 30/icudt52l.dat
  • 30/icuin52.dll
  • 30/icuuc52.dll
  • 30/msvcp100.dll
  • 30/msvcr100.dll
  • 30/intl/fbintl.conf
  • 30/intl/fbintl.dll
  • 30/plugins/engine12.dll
  • Na lista, algumas observações são importantes:

Os arquivos 25/intl/fbintl.dll e 25/intl/fbintl.conf não estão incluídos, pois o gbak não precisa deles para fazer a conexão e não converte dados entre os charsets.

Já o arquivo icu* é essencial, porque os charsets são usados na finalização do backup e da recuperação.

É importante fazer algumas alterações nos parâmetros. Em cada versão do Firebird, o arquivo lpcName deve idealmente ter nomes diferentes. Recomenda-se ainda adicionar as seguintes linhas no firebird.conf:

  • MaxUnflushedWrites = -1
  • MaxUnflushedWriteTime = -1

Uma dica para acelerar a criação dos índices em um computador ou servidor dedicado é aumentar o parâmetro TempCacheLimit para 40% de memória RAM disponível — para arquivo de instalação do Firebird 3.0.

Lembre-se ainda de verificar se o valor de page buffers é igual a 0 no header da página (gstat –h databasename). Isso porque, se outro número for definido, o parâmetro anulará as configurações de firebird.conf. Se o valor for alto, pode ainda haver grande consumo de memória e problemas na conversão.

Uma vez finalizado o conjunto dos arquivos, copie-os para o sistema Windows desejado e interrompa a execução do Firebird 2.5 para realizar a conversão. Por fim, inicie o prompt de comando com as seguintes informações:

  • set ISC_USER=<specify_owner_of_your_database_or_sysdba>
  • set ISC_PASSWORD=password
  • “25/gbak” -z -b -g -v -st t -y 25.log db25 stdout|^
  • “30/gbak” -z -c -v -st t -y 30.log stdin db30

Clique aqui e automatize a atualização do Firebird com o PlugMobile

Atualizar Firebird no Linux

Para migrar Firebird 2.5 para 3.0 no Linux, você deve utilizar a biblioteca tommath. No CentOS, a biblioteca fica localizada no repositório EPEL, que precisa ser ativado para iniciar o comando «yum install libtommath». Já no Ubuntu, ela fica no repositório do sistema — na versão libtommath0 para Ubuntu 16 e libtommath1 para Ubuntu 18.

O Firebird 3.0 procura o arquivo tommath.so.0, mas o Ubuntu 18 exige uma ligação simbólica para tommath.so.1 (localizado normalmente no caminho Ubuntu – / usr / lib / x86_64- linux -gnu /).

Uma vez que a biblioteca tommatch esteja devidamente configurada, a instalação do Firebird 3.0 pode ser feita em /opt/fb3 a partir do comando ./install.sh -path /opt/fb3. Então, interrompa o Firebird 2.5 e execute a conversão de stream. No 2.5 Classic, é necessário desativar o serviço para o xinetd.

No Linux, o acesso à rede do Firebird 2.5 solicita informações de usuário principal e senha. Para confirmar, use:

  • export ISC_USER=username ISC_PASSWORD=password
  • /opt/firebird/bin/gbak -b … db25 stdout\
  • |/opt/fb3/bin/gbak -c … stdin db30

Depois de atualizar Firebird para 3.0, será necessário garantir que o usuário é o dono do arquivo do banco de dados. Do contrário, basta corrigir da seguinte forma:

  • chown firebird.firebird databasena

Ao realizar a conversão, lembre-se de remover a instância temporária, instalar a versão 2.5 original e, então, executar a limpeza da instalação do Firebird 3.

Com o Firebird 3.0, você será capaz de criar os aplicativos do seu software com muito mais facilidade, usando as melhores APIs. E nós podemos ajudá-lo com o PlugMobile, uma plataforma de integração de softwares para mobile.

Conheça nossa solução e veja como usá-la para expandir o seu ERP!

Formado em Comunicação em Multimeios. Analista de Marketing da TecnoSpeed, focado em produção de conteúdos para mídias digitais.

Artigos relacionados