Samba e Firebird - Problemas com o caminho da pasta

Iniciado por joserley, 30 de Novembro de 2012, 11:10

tópico anterior - próximo tópico

joserley

Ola pessoal !
Temos um programa de Nota Fiscal que utiliza o gerenciador de banco de dados Firebird 2.5 e instalado numa
estação Windows 7 funcionando perfeitamente.
Mas o chefe gostaria que o banco de dados (somente) fosse redirecionado e salvo no servidor Ubuntu com
samba com pdc. Criamos a pasta "nfe" no seguinte caminho:

/media/dados/empresa/nfe

Foi feito o compartilhamento no samba como "nfe". O acesso funciona normalmente digitado: \\servidor\nfe.
O problema é que o Firebird precisa do "caminho absoluto" para acessar o banco de dados na pasta "nfe", ou seja,
eu precisaria disponibilizar  o caminho: "/media/dados/empresa/nfe" mas o samba não permite isso, dando a
mensagem "caminho inválido".

Alguem sabe como fazer para o samba "disponibilizar" o caminho absoluto de uma pasta compartilhada ?
Ou então... alguma idéia de como resolver o problema ?

Agradeço muito uma ajuda !
Joserley.

zekkerj

CitarO acesso funciona normalmente digitado: \\servidor\nfe.

CitarO problema é que o Firebird precisa do "caminho absoluto" para acessar o banco de dados na pasta "nfe"

Ora, vc mesmo não disse que o caminho é "\\servidor\nfe"? É assim que a máquina windows vai ver o compartilhamento. Se não funcionar, mapeie numa letra de diretório:

net use x: \\servidor\nfe /save:yes
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

joserley

Ola Zekkerj !

O caminho pelo samba é esse mesmo: "\\servidor\nfe". A estação acessa este compartilhamento normalmente.
Mas o firebird 2.5 só reconhece se for o caminho completo, ou seja: \\servidor\media\dados\empresa\nfe".
Se na configuração do firebird for colocado o compartilhamento do samba "\\servidor\nfe" ele não encontra
o banco de dados.
O problema está justamente ai. O caminho completo o samba não permite acesso. O compartilhamento do samba
o firebird não aceita.
Já mapeamos o compartilhamento do samba como uma unidade local (S:) mas não adianta.

Alguma idéia ?
Joserley.

zekkerj

Cara, o caminho completo, no URI, é "\\servidor\nfe". "\media\dados\empresa" é o caminho no Linux.

Pense em um servidor windows compartilhando a pasta desse arquivo: vc poderia perfeitamente ter o arquivo em "C:\Caminho\Louco\e\Longo\Para\Arquivos\Do\Sistema\NFE\Muito\Estranho", se vc pegasse esse diretório e compartilhasse com o nome "nfe", na máquina "servidor", ele seria visto pelo resto do mundo como "\\servidor\nfe" do mesmo jeito. Esse é o caminho completo.

Se ele não aceita, não é pelo caminho, e sim por algum outro problema --- talvez até por não ser capaz de trabalhar com o banco de dados em pasta compartilhada.

Diga-se de passagem, essa é uma das piores coisas que vc poderia fazer pro coitado do banco de dados --- colocá-lo numa pasta compartilhada.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

galactus

Meu caro joserley, uma rápida busca na documentação do Firebird já teria te poupado muito tempo!

Não! Não é possível ter o seu banco de dados compartilhado!

O Firbird exige acesso exclusivo ao arquivo do banco de dados em um disco local da máquina em que foi instalado!

Existe uma opção de uma "gambiarra" se alterado o arquivo firebird.conf, mas a própria documentação não mostra como se faz e não a recomenda! Eles mesmos avisam do risco de corrompimento do banco de dados se compartilhar ele.

Links com a feliz notícia:

http://www.firebirdfaq.org/faq46/

http://www.firebirdsql.org/manual/qsg10-connecting.html 

Portanto, avisa teu chefe que dessa vez não dá pra fazer o que ele quer!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

zekkerj

Bom momento pra aposentar o Firebird e adotar um SGBD mais profissional.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

joserley

Ola !
Grato pela atenção de vocês.

Galactus. É possível "sim" fazer este redirecionamento. Tenho certeza disso pois aqui na empresa
existe um programa de contabilidade desenvolvido exclusivamente para ambiente windows e que
no entanto tem seu banco de dados redirecionado para o servidor ubuntu server. Dezesseis terminais
acessam o banco de dados de 12 GB controlado pelo Firebird a meses e tudo funciona perfeitamente.
Rápido, estável e nunca houve problemas.
Mas eu peguei o bonde andando e não sei como foi feito isso. Eu já tinha consultado os manuais do
Firebird também mas não descobri como isso é feito. Se pode ser feito com um programa contábil,
pode ser feito com todos não é mesmo ?
Os arquivos firebird.conf e aliases.conf não foram usados. São os mesmos da instalação padrão.
Isto para mim é um mistério pois nunca programei com banco de dados.
Também não encontrei nada no ubuntu server de diferente, a não ser o fato do Firebird 2.5 estar instalado
no servidor também. Mas não tem nenhuma configuração especial. Está tudo padrão.
O aplicativo contábil tem apenas um arquivo texto chamado "arq.txt" com o caminho linux (e não o caminho do samba) do banco de dados. Este arquivo está junto com o aplicativo nas estações windows. Mais nada.

O que vocês acham ?

Grato.

Joserley.

zekkerj

O tal programa contábil pode estar fazendo o caminho correto: conectar no banco de dados pela rede, e não pelo sistema de arquivos. Como aliás você faria, se estivesse usando outro SGBD, como MySQL, Postgre ou Oracle.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D