You are on page 1of 5

Instalando o FirebirdSQL 2

18 de Julho de 2007 � hamacker

O FirebirdSQL (aka Firebird) � um excelente banco de dados relacional compat�vel


com a conformidade SQL ISO/IEC 9075:2003, ele nasceu Livre depois do fork com o
Interbase 6 oferecido pela Borland em julho de 2000, que mais tarde tornou-se
propriet�rio novamente. Da� n�o teve jeito, nasceu o fork chamado FirebirdSQL. O
Banco de Dados Relacional FirebirdSQL roda em Windows, *BSD, Linux e v�rios
sabores de Unix e diferentes tipos de hardwares e processadores, possui uma s�rie
de vantagens como concorr�ncia, performance e uma linguagem poderosa para escrever
triggers e stored procedures.

Atualmente o FirebirdSQL encontra-se na vers�o 2.0 e com a vers�o 2.1 em fase


beta, mas h� um problema : para sistemas baseados no debian (ubuntu incluso), o
Firebird encontra-se nos reposit�rios como vers�o 1.5.3, que possui menos recursos
do que a vers�o 2.0. Para resolver essa situa��o vamos precisar fazer um backport,
isto �, pegar o c�digo fonte da vers�o 2.0 que est� em reposit�rios para vers�es
futuras (Gutsy) e porta-lo para a vers�o que estou utilizando (Feisty). O backport
� melhor do que rodar o instalador (tamb�m existente) para linux ou usar o m�todo
configure; make; make install porque os bin�rios compat�veis com o nosso sistema
j� estar� ambientado � nossa distribui��o.

A receita de bolo abaixo ensina a fazer isso em distros usando Ubuntu, mas a mesma
receita pode ser seguida por outros administradores que utilizem uma vers�o
compat�vel com Debian, bastando modificar a URI no source.list no primeiro passo.

1) Edite o arquivo /etc/apt/sources.list, e acrescente no final dele a seguinte


linha :

deb-src http://archive.ubuntu.com/ubuntu/ gutsy main restricted universe


multiverse

2) Atualizar a base de dados do sistema :

sudo apt-get update

3) Instalar as depend�ncias para compila��o do FirebirdSQL 2.0 :

sudo apt-get build-dep firebird2.0

4) Compilar e gerar os pacotes bin�rios no formato .deb :

sudo apt-get -b source firebird2.0

Isso ir� baixar os fontes do FirebirdSQL, compilar e gerar pacotes bin�rios no


formato .deb para serem instalados em computadores que usem o mesmo sistema que o
seu. Esse processo � autom�tizado, � por isso que administradores Debian gostam
tanto do apt. Veja o resultado final num Ubuntu Feisty :

$ ls -1 *.deb
firebird2.0-classic_2.0.1.12855.ds1-7_i386.deb
firebird2.0-common_2.0.1.12855.ds1-7_i386.deb
firebird2.0-dev_2.0.1.12855.ds1-7_all.deb
firebird2.0-doc_2.0.1.12855.ds1-7_all.deb
firebird2.0-examples_2.0.1.12855.ds1-7_all.deb
firebird2.0-super_2.0.1.12855.ds1-7_i386.deb
firebird-utils_2.0.1.12855.ds1-7_all.deb
libfbclient2_2.0.1.12855.ds1-7_i386.deb
libfbembed2_2.0.1.12855.ds1-7_i386.deb

5) Para concluir a instala��o :

Muitos pacotes .deb s�o gerados, mas nem todos devem ser instalados,
b�sicamente o que h� ali s�o documenta��o, banco de dados de exemplos, cliente de
banco de dados (necess�rio para que aplica��es acessem o banco de dados local ou
remoto), utilit�rios (ferramentas de backup, isql) e tr�s sabores do Firebird :
SuperServer, Classic e embeded(embarcado). No exemplo abaixo, estarei instalando o
FirebirdSQL SuperServer, cliente de banco de dados e os utilit�rios :

sudo dpkg -i firebird2.0-common_2.0.1.12855.ds1-7_i386.deb firebird2.0-


super_2.0.1.12855.ds1-7_i386.deb \\

firebird-utils_2.0.1.12855.ds1-7_all.deb \\

libfbclient2_2.0.1.12855.ds1-7_i386.deb

(os nomes dos bin�rios podem variar conforme a distribui��o, vers�o e m�todo
utilizados. As linhas acima s�o um �nico comando)

As vezes, podem haver depend�ncias, ent�o se houverem mensagens de erro


corroborando isso, ent�o instale-as com o seguinte comando :

sudo apt-get install -f

Se por ventura voce precisar configur a senha do SYSDBA (administrador) em seu


sistema, execute o comando :

sudo dpkg-reconfigure firebird2.0-super

Tamb�m � possivel com o comando acima, relacionar o servi�o do banco de dados


do firebird que � iniciado com o boot da m�quina para usar o Firebird classic ou
super.

6) Para administrar o banco, executar queries e afins numa interface gr�fica :

Recomendo a instala��o do programa FlameRobin, um frontend gr�fico, por�m peso-


leve (sem dependencias pesadas tamb�m), crossplataform (windows, linux, *bsd,
macos) e completamente opensource. Voce encontra esse programa na seguinte
p�gina :

http://www.flamerobin.org/

Baixe a vers�o .deb e em seguida :

sudo dpkg -i flamerobin_0.7.6-1_i386.deb

sudo apt-get install -f

Para quem tem o reposit�rio universe habilitado, nem precisa do procedimento


acima, basta :

sudo apt-get install flamerobin

7) Convertendo banco de dados de vers�es anteriores para serem usados no FB2 :


Os arquivos de dados do FB2 n�o s�o comp�tiveis com as vers�es anteriores, mas n�o
se aflija, a solu��o � simples : fazer uma c�pia de seguran�a (backup) do banco de
dados antigo e restaura-lo no banco de dados novo. Vamos a um outro passo-a-
passo :

7.1) Se voce ainda mant�m (ou manter�) um FB1.5 em sua rede, ent�o :

a) Fa�a um backup dele e guarde na maquina onde voce j� tem o FB2.0 instalado :

gbak -b -v -t -user "SYSDBA" -password "masterkey" \\


IP.DO.SERVIDOR:/caminho/para/o/banco/de/dados/arquivo.fdb \\
/var/lib/firebird/2.0/backup/arquivo.fbk

Repita a mesma opera��o com o arquivo /var/lib/firebird2/system/security.fdb


se desejar guardar tamb�m as contas de usu�rios.

b) Agora restaure-o num arquivo novo, genuinamente comp�tivel com o FB2.0 :

gbak -r -v -t -user "SYSDBA" -password "masterkey" \\


/var/lib/firebird/2.0/backup/arquivo.fbk \\
/var/lib/firebird/2.0/data/arquivo.fdb

A restaura��o do arquivo security.fbk da-se-a da mesma forma, no entanto, dever�


ser restaurado como /var/lib/firebird/2.0/system/security.fdb.

7.2 Se voce vai trocar a vers�o anterior do FB pela 2.0 no mesmo servidor :

a) Fa�a a copia de seguran�a do seu banco de dados antigo (incluindo as contas de


usu�rios), para salvaguardar de problemas e tenha de retornar ao banco de dados
antigo, exemplo :

# criando uma pasta para guardar os backups originais


# o fb dever� estar parado para realizar esta opera��o
mkdir -p /local/do/backup/original

# uma copia das contas dos usu�rios


cp /var/lib/firebird2/system/security.fdb /local/do/backup/original

# copia dos arquivos de dados que voce possuir


cp /caminho/para/o/banco/de/dados/arquivo.fdb /local/do/backup/original

b) Fa�a agora um backup (meta-dados e dados) :

gbak -b -v -t -user "SYSDBA" \\


-password "masterkey" \\
192.168.1.5:/caminho/para/o/banco/de/dados/arquivo.fdb \\
/local/do/backup/original/arquivo.fbk

Se voce precisar tamb�m das contas dos usu�rios, repita este procedimento para
o arquivo security.fdb .

c) Tendo removido o FB anterior e instalado FB2.0 novo, vamos resturar o backup


anterior :

gbak -r -v -t -user "SYSDBA" \\


-password "masterkey" \\
/local/do/backup/original/arquivo.fbk \\
/var/lib/firebird/2.0/data/arquivo.fdb

A restaura��o do arquivo security.fbk da-se-a da mesma forma, no entanto,


dever� ser restaurado como /var/lib/firebird/2.0/system/security.fdb.

7.3 Como definir quem ter� acesso f�sico ao arquivo de dados ?

A pasta /var/lib/firebird/2.0/data � um local j� organizado pelo firebird para


serem colocados os arquivos de dados, usando esta pasta como referencia voce n�o
precisar� se preocupar com permiss�es, pois nela h� permiss�es suficientes apenas
para o usu�rio firebird(criado pelo pr�prio firebird) e root, nenhum outro usu�rio
cadastrado no Linux ter� acesso a arquivos de dados colocados nesta pasta.
Obviamente, se voce quiser um arquivo de dados em outro local voce pode, no
entanto, para inibir o arquivo de ser copiado por outro usu�rio na rede voce ter�
que nas pastas/arquivos de dados executar o comando :

chmod 700 /home/fbdados


chown firebird.firebird /home/fbdados
chown firebird.firebird /home/fbdados/arquivo.fdb
chmod 600 /home/fbdados/arquivo.fdb

Onde /home/fbdados/ representa a pasta onde voce restaurou ou colocou o(s)


arquivo(s) de banco de dados. Obviamente, praticar o mesmo comando para os
arquivos (arquivo.fdb) � redundancia, no entanto, � bom saber que se a seguran�a
da pasta for trocada acidentalmente ainda o arquivo de dados estar� seguro.

Este procedimento � o mesmo que se fazia tamb�m nas vers�es anteriores.

8) Criando aliases para acesso ao banco de dados (opcional) :

Uma dificuldade que muitos sentem ao acessar um arquivo de dados � revelar o path
da localiza��o f�sica deste arquivo por ocasi�o de conectar o banco de dados, isso
gera dois problemas principais :

* Revela a localiza��o f�sica do arquivo de dados, se esta localiza��o for


exposta num arquivo texto ou algo do g�nero algu�m poder� reutilizar essa
informa��o para outros fins.
* Engessa sua aplica��o porque o banco de dados n�o poder� sair daquele local
sem alterar na aplica��o ou arquivos de configura��o do seu aplicativo.

Esses dois problemas s� ocorrem porque n�o foram criados aliases, as conex�es ao
inv�s de referirem-se ao arquivo de dados deveriam referir-se a aliases e este por
sua vez foi programado para representar o arquivo de dados com sua localiza��o
fisica. Edite o arquivo /etc/firebird/2.0/aliases.conf e acrescente :

principal_dados= /var/lib/firebird/2.0/data/arquivo.fdb

Agora, na sua aplica��o voce configura-o para acessar SERVIDOR:principal_dados ao


inv�s do comum SERVIDOR:/caminho/para/arquivo.fdb. Se seu arquivo de dados tiver
que mudar de lugar (inclusive de servidor f�sico), basta alterar o aliases e com
isso sua aplica��o permanecer� a mesma.

Observa��es Importantes :

Nem todos os administradores precisam usar o sudo, o sudo normalmente � usado


apenas por usu�rios do sistema Ubuntu e embora a vers�o do Debian Etch tamb�m
possa utiliza-lo, � desnecess�rio quando se estar fazendo uso da conta �root�.

Links uteis :

Documenta��o a respeito do Firebird :


http://www.firebirdsql.org/index.php?op=doc

Instala��o do Firebird (1.5) no Ubuntu, apesar de ser uma vers�o anterior, ainda �
bastante usado :

http://www.firebirdsql.org/manual/ubusetup.html

Migra��o do banco de dados Microsoft SQL Server (MSSQL) para Firebird, aqui
relatando convers�es de tipos, fun��es, etc� :

http://www.firebirdsql.org/manual/migration-mssql.html

Conformidade com o padr�o SQL :

http://www.firebirdsql.org/index.php?op=devel?
=engine&id=SQL_conformance&nosb=1

Lista de discuss�o em portugu�s sobre o FirebirdSQL e FirebirdSQL+PHP (ambas


bastante movimentadas) :

http://br.groups.yahoo.com/group/firebird-br/messages

http://tech.groups.yahoo.com/group/firebird-php/messages

E por fim, mas n�o menos importante, a p�gina oficial sobre o FirebirdSQL :

http://www.firebirdsql.org/

Posted in Banco de dados, GNU/Linux, ubuntu. 2 Comments �

You might also like