[firebase-br] RES: Problema estranho com banco de dados

Rodrigo A. de Freitas rodrigo em solucoeseinformatica.com.br
Qua Dez 3 16:19:55 -03 2008


Em primeiro lugar, obrigado pela resposta Sandro.

O problema de se instalar o FB SS neste caso é que a aplicação é uma
verdadeira sugadora de recursos; eu utilizo processamento pesado e, com o
superserver, eu ficaria preso a apenas um único núcleo de um dos
processadores do servidor (eu tenho dois Xeon Quad-Core instalados na
máquina). 

Aliás, as bases de dados foram movidas para este servidor, a princípio,
porque o servidor antigo simplesmente não agüentava o tranco e era um Xeon
dual-core com SS. 

Aparentemente não houve corrupção de dados. Acabei de efetuar um back-up da
base e, hoje à noite, farei um back-up e um restore por garantia.

O que me deixou com a pulga atrás da orelha foi algo que achei no bug
tracker do firebird: http://tracker.firebirdsql.org/browse/CORE-1330:



"I wrote a programm which in infinite loop makes the following actions:
queries the monitoring tables, commits transaction and sleeps for a second
than repeat it again.

Very often, when this programm already being runned, if I would run at least
two procceses, connected to the same database and which made a long time
fetches, everything is hanging and it is impossible even to make a new
connection to this database. The reason is that operation "-1" performed
twice to the "monitoring" semaphore and because its value already zero when
trying to perform this operation second time, "semop" system call waiting
till it (semaphore) becames nonzero. So the only way to solve this problem
is to use some external programm to perfom opertion "+1" or remove at all
this semaphore.

May be this is the Linux-specific bug, because I failed to reproduce it when
server running on Windows"


Seria muita coicidência o fato do problema, similar ao relatado acima, ter
acontecido apenas depois que eu comecei a utilizar severamente as tabelas de
monitoração do sistema. O bug está marcado como "corrigido" na versão beta 2
do FB 2.1, mas estou pensando em inibir por alguns dias essas rotinas e
acompanhar o log para ver o que acontece.

[]'s

Rodrigo A. de Freitas
Análise & Desenvolvimento

Soluções & Informática

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Sandro Souza
Enviada em: quarta-feira, 3 de dezembro de 2008 13:46
Para: FireBase
Assunto: Re: [firebase-br] Problema estranho com banco de dados

Bom dia/tarde Rodrigo.

Amigo, não utilize a versão Classic Server do Firebird para um fluxo grande
de requisições, como esse.

Sempre procure utilizar a versão Super Server, pois ela é muito mais robusta
e "aguenta o rojão" sem problema algum.

Pelo que eu vi, acredito o Firebird CS não aguentou a carga de operações
(não de dados, pois dois amigos meus em diferentes empresas já me relataram
que usam Firebird com bases de dados de cerca de 4Gb, e a sua tem apenas
2,5Gb) e tenha "se perdido no tempo e no espaço", chegando mesmo a corromper
a base de dados.

Se eu fosse você, eu utilizaria o "gfix" para verificar e corrigir possíveis
problemas (corrupções) nesse banco de dados, e em seguida, desinstalaria o
Firebird Classic Server e instalaria o Firebird Super Server.

É só uma sugestão.

Espero ter ajudado mais que atrapalhado. :D

2008/12/3 Rodrigo A. de Freitas <rodrigo em solucoeseinformatica.com.br>

> Olá amigos,
>
>
>
> Eu estou com um problema esquisito em um cliente.
>
>
>
> Tenho um sistema que acessa uma base de dados de aproximadamente 2.5 Gb em
> um servidor com um Firebird 2.1.1 CS, instalado em um linux Debian. Há
> cerca
> de 200 usuários simultâneos entre todos os programas, além de uma pequena
> aplicação web escrita em PHP que manipula a base de dados. Há cerca de uma
> hora nenhum usuário consegue abrir a base de dados e tanto pela aplicação
> quanto pelo IBExpert, ao conectar ao banco recebo a mensagem "error
reading
> data from connection". Tenho outras bases de dados de outros sistemas no
> mesmo servidor que estão conectando e funcionando normalmente.
>
>
>
> Ao abrir o firebird.log vi que o servidor estava operando normalmente até
o
> dia 28, quando foi registrado o seguinte no log:
>
>
>
>
>
> bd002   Fri Nov 28 04:05:08 2008
>
>            *** DUMP ***
>
>
>
> bd002   Fri Nov 28 04:05:08 2008
>
>            Tag=-1 Offset=395408 Length=463647 Eof=0
>
>
>
> bd002   Fri Nov 28 04:05:08 2008
>
>            Clump 255 at offset 0:
> <1c>QLA<8a>n<f9><8b>y<97><aa><98>h<db><13><e3>
>
>
>
> bd002   Fri Nov 28 04:05:08 2008
>
>            Clump 254 at offset 21: !
>
>
>
> bd002   Fri Nov 28 04:05:08 2008
>
>            Clump 0 at offset 27: /home/databases/lider.fdb
>
>
>
> bd002   Fri Nov 28 04:05:08 2008
>
>            Clump 1 at offset 57: <00> <00><00>
>
>
>
>
>
> A partir daí, praticamente toda instrução do banco passou a gerar um
"Clump
> X at offset Y", até o dia de hoje, quando o log registrou o seguinte e o
> banco de dados parou de aceitar conexões.
>
>
>
>
>
> bd002   Wed Dec  3 08:50:56 2008
>
>            Fatal exception during clumplet dump: Invalid clumplet buffer
> structure: buffer end before end of clumplet - clumplet too long
>
>
>
>
>
> bd002   Wed Dec  3 09:26:59 2008
>
>            Fatal lock manager error: semaphores are exhausted, errno: 1
>
>
>
> Liguei para o pessoal de TI do cliente, pedi para que eles reiniciassem o
> servidor Debian. Após voltar ao ar, foi possível conectar a base de dados
> novamente, mas o log continou registrando a mensagem acima, variando o
> "errno" entre 1, 4 e 104.
>
>
>
> Algo que pode ser uma dica: no dia 28 liberei uma versão nova da aplicação
> que continha algumas mudanças grandes e entre elas estavam algumas stored
> procedures que utilizam as tabelas de monitoramento do firebird para
gravar
> em algumas tabelas o IP da conexão do cliente.
>
>
>
> Alguém tem uma pista do que pode ser tudo isso ? É algum problema com o
> servidor ou com a base de dados ?
>
>
>
>
>
> Abraços,
>
>
>
> Rodrigo A. de Freitas
>
> Análise & Desenvolvimento
>
>
>
> Soluções & Informática
>
>
>
>
>
> ______________________________________________
> 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
>
______________________________________________
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

No virus found in this incoming message.
Checked by AVG - http://www.avg.com 
Version: 8.0.176 / Virus Database: 270.9.13/1826 - Release Date: 3/12/2008
09:34





Mais detalhes sobre a lista de discussão lista