- Este tópico contém 20 respostas, 3 vozes e foi atualizado pela última vez 15 anos, 7 meses atrás por
mpvargas.
-
AutorPosts
-
11 de fevereiro de 2009 às 5:49 pm #85243
mpvargas
ParticipanteCaros Amigos,
Após algumas alterações no banco, o processo LGWR está bloqueando outras sessões e o commit também está demorando um pouco. Com isso o wait do servidor aumentou consideravelmente.
ADDM => Waits on event “log file sync” while performing COMMIT and ROLLBACK operations were consuming significant database time.
Meu redo log era de 5 grupos de 150Mb, aumentei para 300Mb e bloqueava as sessões toda hora… agora coloquei 200Mb e melhorou bastante com relação a esses bloqueios.
O que eu devo fazer, colocar um valor bem alto, tipo 1Gb ou reduzir para uns 50Mb?
Obrigado pela ajuda.11 de fevereiro de 2009 às 5:51 pm #85245Ricardo Portilho Proni
ParticipanteSe a mensagem “Checkpoint not complete” estiver aparecendo no seu alert log, aumente os REDOs em quantoidade e tamanho até a mensagem não aparecer mais.
Se o problema continuar, você precisa colocar seus REDOs em um I/O mais rápido e separado.11 de fevereiro de 2009 às 6:14 pm #85247vieri
ParticipanteO parâmetro log_buffer deve ser proporcional
ao tamanho dos redos.Não adianta aumentar o redo e manter o log_buffer pequeno.
aumente ele também.Veja bem não adiandata ter uma caixa enorme se a sua
fila tem uma portinha muito pequena.verifique o parâmetro log_checkpoints_to_alert também,
para poder verificar oque o portilho falou que é correto.basicamente são essas 3 variaveis que influenciam na performance
11 de fevereiro de 2009 às 6:23 pm #85248mpvargas
ParticipanteRicardo,
Ontem a noite eu recebi essa mensagemTue Feb 10 20:32:17 2009
Thread 1 cannot allocate new log, sequence 2865
Checkpoint not complete
Current log# 5 seq# 2864 mem# 0: /u01/app/oracle/oradata/asoec/redolog/redo5.logMas hoje essa mensagem não apareceu…
Quanto a mudar a localização dos redos não tenho como fazer porque a máquina está em RAID 5 somente com a partição /
Vieri,
Posso aumentar o log_buffer com o banco em produção ou tenho que parar a instancia?Parâmetro log_checkpoints_to_alert = FALSE
11 de fevereiro de 2009 às 6:39 pm #85249mpvargas
ParticipanteRecebi o seguinte erro:
ORA-01555 caused by SQL statement belowParece que algo relacionado ao redo log, certo?
11 de fevereiro de 2009 às 8:26 pm #85254Ricardo Portilho Proni
ParticipanteORA-01555 é falta de UNDO.
Aumente o UNDO.Aumentar o log_buffer dificilmente te trará ganho de performance.
Ele sempre é esvaziado no máximo a cada CHECKPOINT, que é no máximo a cada 3 segundos.11 de fevereiro de 2009 às 8:44 pm #85257mpvargas
ParticipanteColoquei mais um arquivo de 200MB… até agora não recebi nenhuma mensagem, mas continua aparecendo em sessões bloqueadoras.
Agora está com 6 grupos de 200MB.Existe algum parametro para tornar o COMMIT mais rápido?
Minha tablespace de UNDO é 10GB, será que estourou esse espaço?
Pelo que eu li, não sei se estou certo, o log_buffer tem que ser no máximo 1MB, porque qualquer valor além disso é irrelevante. Não sei se entendi direito mas existe uma grande discussão a respeito desse parâmetro com várias opiniões diferentes.
Eu uso SGA_Target e o log_buffer está 14,1MB.
O que eu não entendo é o porque do Oracle ter feito uma revisão nesse parametro no EM, passando de 14294016 para 1430220811 de fevereiro de 2009 às 8:54 pm #85258Ricardo Portilho Proni
ParticipantePelo que vc falou, REDO em RAID5, junto com o banco todo, é seu problema de I/O.
11 de fevereiro de 2009 às 8:57 pm #85261Ricardo Portilho Proni
ParticipanteSim, seu espaço de UNDO estourou, pode aumentar ele…
O que você pode tentar é usar grupos de REDO com apenas um membro, serão menos gravações.
É só tomar cuidado para não apagar nenhum dos membros restantes. 🙂11 de fevereiro de 2009 às 10:01 pm #85268mpvargas
ParticipanteRicardo,
Com relação ao I/O acho que vamos solucionar o problema brevemente com a chegada do novo servidor. O que temos atualmente, quando compraram, não me consultaram, aí quando eu fui configurar a máquina não teve jeito. Dessa vez vamos colocar RAID 10 e HDs separados para gravação dos logs.
Vou aumentar minha tablespace de UNDO para uns 15Gb.
Com relação aos grupos de redo, na verdade eu tenho 6 grupos sendo que cada um tem somente um arquivo. Seria interessante eu criar mais grupos? Até quantos grupos posso criar?Obrigado pela ajuda.
11 de fevereiro de 2009 às 10:04 pm #85269mpvargas
ParticipanteUma observação.
Minha tablespace de UNDO está com 10GB e com a opção de autoincremento de 100MB até o limite de 32GB.
Será que estorou o limite de 32GB?11 de fevereiro de 2009 às 10:16 pm #85271Ricardo Portilho Proni
ParticipanteSe a mensagem não aparece mais no alert log, não vai ajudar aumentar o número de REDOs.
Se sua tablespace de UNDO está com 10GB, ainda não cresceu até 32. Você está usando 10g, com undo automático?11 de fevereiro de 2009 às 10:17 pm #85272Ricardo Portilho Proni
ParticipanteSe seu UNDO está automático, aumente o UNDO_RETENTION para evitar o ORA-01555.
11 de fevereiro de 2009 às 10:21 pm #85273mpvargas
ParticipanteAumentei o UNDO_RETENTION para 1500.
Vou observar para ver se a mensagem não aparece mais.
Obrigado.12 de fevereiro de 2009 às 4:02 pm #85277mpvargas
ParticipanteCaro Ricardo,
Ontem voltei a receber o erro ORA-01555. Tem mais alguma coisa que eu posso alterar?
Poderia me ajudar num outro detalhe. Deixamos alguns processos rodando a noite, eu tenho como saber através de gráfico ou outra forma, como foi o comportamento da máquina a nível de processo?
Obrigado. -
AutorPosts
- Você deve fazer login para responder a este tópico.