Translate

Pesquisar este blog

terça-feira, 21 de janeiro de 2014

Compilando o Firebird SQL no Slackware

O banco relacional Firebird é muito usando no mundo Delphi/Lazarus. Ele é de pequeno porte, mas contém funcionalidades como transações, MVCC, stored procedures,  UDFs, etc.

ATENÇÃO: As databases do firebird performam extrememente mal em partição ext4, mas para isso existem algumas opções:
  1. Pôr em uma partição xfs (a melhor performance).
  2. Pôr em uma partição ext3.
  3. Montar a ext4 com a opção barrier=0, o que vai diminiur a segurança do journaling para o nível de uma ext3.

O Firebird possui 3 arquiteturas de servidor: o SuperServer, o SuperClassic e Classic (os dois últimos são compilados juntos, ufa!).

  • O SuperServer é feito para máquinas mais leves, pouco suporte a várias CPUs, mas ele compartilha bem os recursos entre as conexões, tornando-se escalável se o hardware for pequeno. Ele cria um processo fbserver que serve todas as conexões.
  • O Classic é feito para máquinas pesadas e muitos usuários, suporte a várias CPUs, ele não usa recursos compartilhados e sim dedicados a cada conexão. Ele cria um processo fb_inet_server para cada conexão.
  • O SuperClassic surgiu a partir do Firebird 2.5, ele é uma evolução do Classic. Na verdade possui o gerenciamento do Classic, com recursos dedicados (sem memória compartilhada), mas abre apenas um processo fb_smp_server  que serve todas as conexões.

Para compilar baixe os fontes e dê os seguintes comandos:
tar xvf Firebird-xxxx.tar.gx -C /root/
export CFLAGS="-O2 -march=native -mtune=native"
export CPPFLAGS="-O2 -march=native -mtune=native"
export CXXFLAGS="-O2 -march=native -mtune=native"
./autogen.sh --with-system-icu --enable-superserver
make
make install

  1. Note que pôr --prefix=/usr vai dar erro, ele deve ir pra outra pasta mesmo.
  2. Para compilar o Classic/SuperClassic remova o --enable-superserver

Para configurá-lo é matéria pra outro post. Mas geralmente ele não precisa muita complicação.
Crie um usuário e grupo firebird:

groupadd firebird
useradd -g firebird firebird

Depois de compilado vá para /usr/local/firebird/bin e rode su firebird -c "./fbguard"
Depois é só instalar o flamerobin ou o SQuirrel e começar a usar.