Firebird 2.1 e 1.5 no mesmo servidor

1. Firebird 2.1 e 1.5 no mesmo servidor

carlos
carlosb

(usa Debian)

Enviado em 24/04/2013 - 11:08h

Salve galera.

Recentemente passei por um problema: precisei instalar duas versões do Firebird no mesmo servidor Linux (no caso Debian 6), o FB 2.1 e o FB 1.5.
Na época não achei em lugar algum como fazer isso. Somente como fazer no Windows, o que não resolveria o meu problema.
A minha solução: Virtualização. Instalei o Firebird 2.1 no host hospedeiro e o 1.5 em uma máquina virtual. Resolveu meu problema de imediato, mas fiquei meio incomodado com isso (não que a virtualização seja uma má solução, pelo contrario, resolveu meu problema perfeitamente).
O problema é que eu acho que deveria ter como fazer as duas versões rodarem simultaneamente no mesmo sistema.

Há alguns dias atras, navegando pelas interwebs, encontrei esse artigo: Multiple Firebird Servers on Ubuntu
http://www.gefoo.org/generalfoo/2011/02/21/multiple-firebird-servers-on-ubuntu/

Nele, o autor faz duas instalações do Firebird 2.1 no mesmo servidor.

Baseado neste artigo eu fiz a instalação do FB 2.1 e do 1.5 no mesmo servidor, e, pelos testes que fiz, rodou sem problemas aparente.

Segue o procedimento que utilizei para essa instalação:



Firebird 2.1 e 1.5 no mesmo host Linux:

Versão Linux:
Debian6 - 2.6.32

Versões Firebird utilizadas:
FirebirdCS-1.5.6.5026-0.i686.tar.gz
FirebirdCS-2.1.5.18496-0.i686.tar.gz

Primeiro, instalação do Firebird 2.1 Classic, com o xinetd:

root@debian6:~# apt-get update
root@debian6:~# apt-get upgrade
root@debian6:~# apt-get install xinetd
root@debian6:~# apt-get install libstdc++5

Faça download do firebird (FirebirdCS-2.1.5.18496-0.i686.tar.gz), e descompacte:
root@debian6:~# tar zxvf FirebirdCS-2.1.5.18496-0.i686.tar.gz

acesse o diretorio criado
root@debian6:~# cd FirebirdCS-2.1.5.18496-0.i686

descompacte o arquivo buildroot.tar.gz
root@debian6:~/FirebirdCS-2.1.5.18496-0.i686# tar zxvf buildroot.tar.gz

Crie o diretorio de instalação em /opt
root@debian6:~/FirebirdCS-2.1.5.18496-0.i686# mkdir /opt/firebird21

e copie o opt/firebird descompactado de buildroot.tar.gz para /opt/firebird21
root@debian6:~/FirebirdCS-2.1.5.18496-0.i686# cp -R opt/firebird/* /opt/firebird21/

Faça o mesmo processo para o Firebird 1.5 Classic
root@debian6:~# tar zxvf FirebirdCS-1.5.6.5026-0.i686.tar.gz
root@debian6:~# cd FirebirdCS-1.5.6.5026-0.i686/
root@debian6:~/FirebirdCS-1.5.6.5026-0.i686# tar zxvf buildroot.tar.gz
root@debian6:~/FirebirdCS-1.5.6.5026-0.i686# mkdir /opt/firebird15
root@debian6:~/FirebirdCS-1.5.6.5026-0.i686# cp -R opt/firebird/* /opt/firebird15/

Crie o grupo e usuario para o firebird:
root@debian6:~/FirebirdCS-1.5.6.5026-0.i686# cd /opt/
root@debian6:/opt# groupadd firebird
root@debian6:/opt# useradd -d /opt/firebird01 -s /bin/false -c "Firebird Database Owner" -g firebird firebird

Altere o dono e o grupo dos diretórios de instalação dos dois FBs:
root@debian6:/opt# chown firebird.firebird firebird* -R


Configurar primeiro ambiente:

Definindo a senha padrão para o FB 2.1:
root@debian6:/opt/firebird21# export FIREBIRD=/opt/firebird21/
root@debian6:/opt/firebird21# export LD_LIBRARY_PATH=/opt/firebird21/lib/
root@debian6:/opt/firebird21# cd bin/
root@debian6:/opt/firebird21/bin# ./gsec
GSEC> modify SYSDBA -pw masterkey
Warning - maximum 8 significant bytes of password used
GSEC> quit
root@debian6:/opt/firebird21/bin#

Mude o nome do executavel do FB 2.1
root@debian6:/opt/firebird21/bin# mv fb_inet_server fb_inet_server21

Faça o mesmo procedimento acima, só que para o FB 1.5:

root@debian6:/opt/firebird21/bin# cd ../../firebird15/
root@debian6:/opt/firebird15# export FIREBIRD=/opt/firebird15/
root@debian6:/opt/firebird15# export LD_LIBRARY_PATH=/opt/firebird15/lib/
root@debian6:/opt/firebird15# cd bin/
root@debian6:/opt/firebird15/bin# ./gsec
GSEC> modify SYSDBA -pw masterkey
Warning - maximum 8 significant bytes of password used
GSEC> quit
root@debian6:/opt/firebird15/bin#
root@debian6:/opt/firebird15/bin# mv fb_inet_server fb_inet_server15


Configurando xinetd

Edite o arquivo /etc/services
root@debian6:~# vim /etc/services

remova as linhas
gds_db 3050/tcp # InterBase server
gds_db 3050/udp

e adiocione no final as linhas

firebird15 3053/tcp
firebird15 3053/udp
firebird21 3060/tcp
firebird21 3060/udp


Agora, crie o arquivo /etc/xinet.d/firebird15 com o conteúdo abaixo:
root@debian6:~# vim /etc/xinet.d/firebird15

service firebird15
{
flags = REUSE
socket_type = stream
wait = no
user = firebird
server = /opt/firebird15/bin/fb_inet_server15
env =FIREBIRD=/opt/firebird15
env +=LD_LIBRARY_PATH=/opt/firebird15/lib
disable = no
}


e o arquivo /etc/xinet.d/firebird21
root@debian6:~# vim /etc/xinetd.d/firebird21

service firebird21
{
flags = REUSE
socket_type = stream
wait = no
user = firebird
server = /opt/firebird21/bin/fb_inet_server21
env =FIREBIRD=/opt/firebird21
env +=LD_LIBRARY_PATH=/opt/firebird21/lib
disable = no
}

Altere a porta nos arquivos /opt/firebird15/firebird.conf e /opt/firebird21/firebird.conf:
root@debian6:~# vim /opt/firebird15/firebird.conf
Mude a linha:
#RemoteServicePort = 3050
para:
RemoteServicePort = 3053

root@debian6:~# vim /opt/firebird21/firebird.conf
Mude a linha:
#RemoteServicePort = 3050
para:
RemoteServicePort = 3060

E restarte o XINETD

root@debian6:~# service xinetd restart

Não esquecer de quando utilizar algum utilitário do diretótio bin, não esqueça de exportar as variaveis de ambiente:

Para o 1.5:
export FIREBIRD=/opt/firebird15/
export LD_LIBRARY_PATH=/opt/firebird15/lib/

E para 2.1:
export FIREBIRD=/opt/firebird21/
export LD_LIBRARY_PATH=/opt/firebird21/lib/


Bom, como disse antes, em teste básicos que fiz, funcionou sem problemas aparente.
A minha dúvida é se posso utilizar essa instalação em servidores em produção, se vai haver algum problema de conflito ou algo parecido.

Desculpe pelo post gigante.

Se alguém puder me ajudar, fico grato.

T+


  


2. Re: Firebird 2.1 e 1.5 no mesmo servidor

Buckminster
Buckminster

(usa Debian)

Enviado em 24/04/2013 - 14:04h

Acredito que não terá problemas uma vez que os caminhos para as 'library' e as portas são diferentes.
Ficaram muito bem instalados.
O único porém que eu vi é que foi criado um grupo e um usuário só para os dois Firebirds, mas não sei se isso te causará problemas.
No artigo em inglês os Firebirds são da mesma versão.


3. Re: Firebird 2.1 e 1.5 no mesmo servidor

carlos
carlosb

(usa Debian)

Enviado em 26/04/2013 - 11:15h

Buckminster escreveu:

No artigo em inglês os Firebirds são da mesma versão.



Exatamente. Segundo o autor do artigo em inglês pode ser rodado em ambiente de produção, com os FBs na mesma versão.

Baseado nele, eu fiz a instalação de duas versões diferentes de FBs.

A minha duvida maior seria a respeito das variáveis de ambientes. Se na hora que for executado algum comando no banco ele não se confundiria entre um banco e outro.

Ou no uso de algum gerenciador de banco de dados, como o IBExpert, aconteceria a mesma coisa.


4. Re: Firebird 2.1 e 1.5 no mesmo servidor

FLAVIO GOMES BERNARDES
flaviog

(usa CentOS)

Enviado em 11/02/2015 - 16:00h


Fiz como no seu artigo mas nao funcionou.

Uso centos e queria instalar Firebird1.5 e Firebird2.5

Ele nao starta.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts