[firebase-br] MIGRAÇÃO FIREBIRD XP PARA LINUX

Sandro Souza escovadordebits em gmail.com
Sáb Set 26 22:47:13 -03 2009


Bom dia/tarde Wilson.

Grande Wilson, baseado no meu humilde conhecimendo sobre Firebird, 
respondo suas questões da seguinte forma:

1 - Como existem mais otimizações no Firebird 2.1, e para isso, o 
formato interno das bases de dados tiveram que ser modificados, a 
resposta é sim. Uma base criada no Firebird 1.5 tem um formato diferente 
da criada na versão 2.1, mas o 2.1 "entende" perfeitamente o formato da 1.5.

Se você vai utilizar uma versão superior a versão que você já utiliza, é 
sempre recomendável recriar a base de dados na nova versão para 
aproveitar todas as melhorias.

Para isso, você poderia, por exemplo, gerar um backup transportável de 
sua base de dados 1.5 e criar a nova base, na nova versão, a partir 
desse backup.

Se você criou usuários no Firebird, então você deve criá-los também na 
nova versão, antes de criar a nova base de dados.

2 - Instalando o Firebird 2.1 no Linux, no caso o Ubuntu 9.04, você 
poderá utilizar, no mínimo, o utilitário "isql-fb" para acessar o 
Firebird e efetuar todas as operações que desejar. No Firebird de linux, 
você também dispões do gbak, gsec e outras ferramentas (como o "isql-fb").

Como ferramenta gráfica, eu utilizo o FlameRobin, que não chega aos pés 
do IB Expert, mas está me servindo bem, só tendo o incômodo de não 
exibir os textos acentuados.

Assim que vocẽ instala o Firebird no Ubuntu, ele não é executado 
automaticamente até que você crie a senha do usuário "sysdba".

Para fazer isso, use o utilitário "dpkg" para reconfigurar o pacote de 
Firebird que você instalou.

Por exemplo, eu instalei o pacote "firebird2.1-super", então eu o 
reconfiguro pelo seguinte comando "dpkg --configure firebird2.1-super".

Nesse momento, ainda em modo texto, você deverá informar a senha inicial 
do usuário "sysdba", e a partir daí o firebird será sempre carregado ao 
iniciar o micro.

Para iniciar o serviço do firebird você pode digitar, como usuário root, 
"service firebird2.1-super start", para pará-lo "service 
firebird2.1-super stop" e para reiniciá-lo "service firebird2.1-super 
restart".

Por exemplo, supondo que você vai acessar o Firebird usando o usuário 
"sysdba" com a senha "masterkey", no dialeto 3, você pode digitar o 
comando "isql-fb -u sysdba -p masterkey -s 3".

A partir daí, você pode criar novas bases de dados, acessar as já 
existentes, e todas as operações que esse utilitário permite.

Eu também migrei uma base de dados de um Firebird de M$$$$ Windows para 
Linux, e o que fiz foi o seguinte:

2.1 - Gerei um backup transportável (se não for transportável, não 
conseguiria utilizá-lo em outra plataforma, como linux) da base de dados 
atual.

2.2 - Quando você instala o Firebird no linux, ele cria um usuário 
"firebird" que pertence ao grupo de usuários "firebird", e o processo do 
Firebird é executado nos direitos desse usuário (firebird:firebird) 
réles mortal. Sendo assim, criei uma pasta chamada "databases" em 
"/home" e tornei o usuário "firebird:firebird" o dono/proprietário dessa 
pasta, para que ele possa acessar completamente todas as bases de dados 
que eu colocar nessa pasta (chown firebird:firebird /home/databases).

2.3 - No linux, usei o gbak para restaurar o backup transportável, 
criando uma nova base de dados no linux, e nesse caso, eu criei naquela 
pasta /home/databases, tomando o cuidado de também tornar o usuário 
"firebird:firebird" o dono dessa nova base (chown firebird:firebird 
/home/database/novabase.fdb).

2.4 - Editei o arquivo "/etc/firebird/2.1/aliases.conf" e acrescentei 
uma nova linha de texto para criar um "alias" para a nova base de dados 
(minhabase = /home/databases/minhabase.fdb), para que dessa forma 
ficasse transparente a verdadeira localização da base de dados.

2.5 - Também temos que ter o cuidado de configurar o firewall do linux 
para permitir conexões a porta 3050, que é a padrão do 
Firebird/Interbase, e se for o caso de querer aumentar a segurança, 
configure o arquivo "/etc/firebird/2.1/firebird.conf", trocando o valor 
da variável "RemoteServicePort" para outro número de porta servidora, e 
removendo o caracter inicial dessa linha (#) que deixava a linha em 
comentário, e nesse caso, configure o firewall para permitir acessos 
externos a essa nova porta.
No meu caso, eu instalei também o pacote do FireStarter, que é um 
frontend bem simples para configurar de maneira muito prática o firewall 
do linux.

3 - Como eu criei um "alias" para a nova base de dados, nas estações com 
M$$$ Windows, posso acessar essa base pelo caminho: 
"<ip-do-servidor>:minhabase", onde "<ip-do-servidor>" é o endereço IP (o 
nome do servidor também serve) da máquina onde está sendo executado o 
Firebird, e "minhabase" é o nome do "alias" que eu criei no arquivo 
"/etc/firebird/2.1/aliases.conf". Caso contrário, teríamos que informar 
o caminho completo da base, como 
"<ip-do-servidor>:/home/database/novabase.fdb".

Espero ter ajudado mais que atrapalhado. :D

>
> Boa noite, meu nome e Wilson, tenho um conhecimento acredito que 
> mediano, mais para firebird, sou novato total.
> estou com um cliente aonde possui duas maquinas fazendo papel de 
> servidor, aonde o mesmo quer juntar as duas em um servidor só, então 
> entra a questão estou migrando para Linux. A parte do samba esta ok,, 
> mais o firebird me deixou um tanto quanto confuso, minhas duvidas:
> Ambiente do banco de dados atual: windows xp, com firebird 1.5
> Ambiente do server linux: Ubuntu Server 9.04 firebird 2.1 amd_64
> 1)existe diferença de um banco que originalmente foi feito em fb1.5 
> para um 2.1?
> 2)aonde,como se configura a base de dados, tenho q subir uma base que 
> estar no /home/sistema/banco.dbf?
> 3)o cliente XP se conecta da seguinte forma? ¨sistema.exe 
> 192.168.0.1:3050:/compartilhamento_samba/banco.dbf¨
>
> Desde já grato.
> Wilson Campos Filho
> Apenas mais um sofredor! paz
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: 
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>




Mais detalhes sobre a lista de discussão lista