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 super_2.0.1.12855.ds1-7_i386.deb \\
firebird2.0-
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 pesoleve (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-apasso : 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 chown chown chmod
700 /home/fbdados firebird.firebird /home/fbdados firebird.firebird /home/fbdados/arquivo.fdb 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 exposta num arquivo texto ou algo do informa��o para outros fins. * Engessa sua aplica��o porque o sem alterar na aplica��o ou arquivos
arquivo de dados, se esta localiza��o for g�nero algu�m poder� reutilizar essa banco de dados n�o poder� sair daquele local 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 �