[firebase-br] Banco corrompendo

Gladiston Santana gladiston em vidy.com.br
Ter Jul 3 09:25:40 -03 2018


Se estiver acontecendo 'blob not found' é provável corrupção nos dados.
Outro dia percebi um comportamento que corrompeu minha base de testes, eu
tenho um diretório de scripts que são aplicados em sequencia, porém com o
database em uso o sistema não me retornou erros, mas durante as sequencias
de updates percebi uma demora incomum e depois de completa surgiram 'blobs
not found' em muitas operaçoes no sistema. Elas aconteceram porque num dado
momento da atualização alguns objetos estavam em uso em especial um deles
faz ajuste nos sequenciadores. Repeti o processo manualmente e descobri o
que estou relatando.

Minha experiencia com desenvolvimento e produção usando o FB identifica o
seguinte, quanto mais eu faço intervenção na estrutura em tempo de
desenvolvimento  e uso muito o IBExpert mais acontece anomalias que não se
repetem em produção, daí é o seguinte, em produção é preciso ser mais
pragmático ou cauteloso, o que eu não sou quando em tempo de
desenvolvimento, se demorar demais eu mato o programa ou o serviço e as
vezes anomalias aparecem, não sou doido para repetir o que faço em
desenvolvimento no database de produção então tome a seguinte inciativa ao
mexer com a database de produção, seja pragmático, por exemplo, o ibexpert
permite você criar um campo 'not null' quando já existem dados o que me
parece muito estranho, pois bem, como não sei como o ibexpert faz isso, sou
cauteloso e (1)crio um campo novo, (2)populo o campo e (3)depois crio a
constraint para impedir nulos. É bem mais trabalho, mas isso tem trazido
certa tranquilidade desde 1998 quando começei a trabalhar com RBMS, quando
alguns bancos como o MSSQL se quer tinham um ALTER TABLE.
O fato de ocorrer nessa tabela é porque ela tem blobs, mas não quer dizer
que foi algo com ela, isto é, não quer dizer que foi algum comando usando
essa tabela.
Ocorre que eventual bagunça nos dados e esses dados são os mais sensiveis
porque blobs estão internamente em estrutura separada da tabela.
Se tiver certeza do limite do conteudo do XML poderá usar um varchar(32768)
e isso retirará do campo os blobs, mas terá um preço alto de performance a
pagar, pois se seus dados estiverem em páginas de 16k, provavelmente serão
até 3 páginas por registro e sua base crescerá muito mais rapido,
avassaladoramente mais rápido.

Para resolver o atual problema, faça um imediato backup/restore, depois
pense no que eu lhe falei,

[]´s
PS: Pode parecer impressão minha, mas essas anomalias estão acontecendo
mais com SSDs do que antes quando usava HDD.


Em 2 de julho de 2018 21:47, Marcelo - MK Softwares <
marcelo em mksoftwares.com.br> escreveu:

> Boa noite pessoal
>
> Tenho um sistema de gestão instalado em várias empresa por aqui na
> redondezas, todas utilizam a mesma estrutura do banco de dados e versão do
> sistema. Bom o caso é o seguinte, em apenas um cliente esta corrompendo o
> seu banco de dados. Já verifiquei vários fatores que pensei que poderiam
> estar influenciando nesse corrompimento.
> O estranho é que isso acontece em apenas uma tabela, tabela essa onde
> armazeno os arquivos XML em um registro BLOB:
> XML                XMLNFE
> detalhes do domain
> CREATE DOMAIN XMLNFE AS BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET
> WIN1252;
>
> Se alguém puder dar uma dica, fico grato.
>
> ______________________________________________
> 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://www.firebase.com.br/pes
> quisa_lista.html
>



-- 
A Vidy possui um Sistema de Gestão da Qualidade estruturado e com
Certificação ISO 9001 há mais de 10 anos, mantendo seu foco na Qualidade e
na Melhoria Continua.

Em março de2018 migramos com sucesso para a nova versão da ISO 9001.

Somos a única Empresa Brasileira de Engenharia de Laboratórios com
certificação com o Escopo Completo; desde Projetos, Engenharia, Construção,
Fabricação e Instalação de Laboratórios.



Mais detalhes sobre a lista de discussão lista