- Este tópico contém 4 respostas, 2 vozes e foi atualizado pela última vez 13 anos, 11 meses atrás por
Danielson.
-
AutorPosts
-
8 de abril de 2012 às 7:16 am #103285
Danielson
ParticipanteOla pessoal,
Temos uma aplicação que passou a travar muitas vezes por dia. Após reiniciar tais serviços o sistema volta a funcionar. Nada de anormal no alert.log. Até que em um momento o alert apontou que a tablespace undotbs01 estava com seu datafile cheio (seu tamanho era de 3GB / extend off). Adicionei outro datafile e cerca de 5 horas depois também encheu. O que pode estar acontecendo com a base? Alguma sugestão?
Abraços a todos![/url]
9 de abril de 2012 às 10:37 pm #103289rman
Participante@Danielson
A pergunta é o que está acontecendo no sistema e não na base. Foi desenvolvido alguma funcionalidade nova? Conseguiu identificar qual funcionalidade está sendo executada no momento?
Tudo que não foi comitado fica no UNDO, feito o COMMIT as informações vão para os datafiles. Se o UNDO está crescendo muito, deve ser analisado como estão sendo feitos os COMMITS.
10 de abril de 2012 às 10:14 pm #103296Danielson
Participante@rman,
Obrigado pela responta.
Mas pensei no seguinte… Se os commits não estivessem sendo feitos, as informações também não deveriam ser salvas (?) Digo isso porque a aplicação roda localmente e fiz varios testes nesse sentido. Em uma estação insiro um novo registro, depois o consulto em outra estação.Minha suspeita ou o teste foi feito de maneira errada? Tem alguma sugestão sobre como poderia identificar se os commits estão ou não sendo executados?
10 de abril de 2012 às 10:24 pm #103297rman
Participante@Danielson
Você conseguiu identificar qual funcionalidade que está sendo usada no momento do crescimento do UNDO ? Você tem acesso ao fonte do sistema para fazer um debug ?
Se os dados estão sendo salvos concerteza o COMMIT está sendo realizado, mas isso não significa que está sendo feito de maneira correta, imagine uma procedimento que atualiza uma lista de preço de produtos baseado em uma regra de negocio, o procedimento tem que atualizar 100 milhões de produtos, se o procedimento gerar 100 milhões de update, ou seja, para cada produto foi realizado um UPDATE, se você deixar para fazer apenas 1 COMMIT no final do procedimento, concerteza o seu UNDO vai crescer, o mais adequado é gerar COMMIT a cada X produtos. Entendeu a ideia ?
Provavelmente você testou uma tela de cadastro onde não existe o problema do COMMIT.
16 de abril de 2012 às 5:44 pm #103366Danielson
ParticipanteSim, entendi a idéia @rman.
Infelizmente não pude debugar. Tive que contratar um DBA que ainda não me enviou o relatório do trabalho. Mas provavelmente o problema estava relacionado a sua análise.
Mto obrigado pela atenção e pronta ajuda!
-
AutorPosts
- Você deve fazer login para responder a este tópico.