Geração de refazer do Oracle Logical Standby

2

Banco de dados Oracle 10.2.0.4 com uma espera lógica no Win2K3. Recentemente, uma operação de exclusão bastante grande foi executada na instância de produção. Estou tendo dificuldades com o modo de espera lógico, pois ele gera algumas centenas de logs de arquivamento (tamanho 58M) na operação e o processo de aplicação falha com um erro de falta de memória. Infelizmente, toda vez que falha, é necessário reiniciar o aplicativo desde o início da transação. Isso leva alguns dias a cada vez. De qualquer forma, ao tentar resolver esse problema, notei que cada log de arquivo do sistema de produção gera 5 ou 6 switches de log no modo de espera. Eu não entendo porque isso deveria ser. Alguém tem alguma ideia?

Uma questão relacionada para a qual não encontrei resposta: alguém sabe se o modo de espera lógico deve estar em execução no modo archivelog? Eu realmente não tenho necessidade de manter os logs.

    
por DCookie 04.11.2009 / 17:20

4 respostas

2

Eu nunca recebi uma explicação da Oracle sobre isso. Por fim, eu não podia esperar mais e simplesmente recriou o modo de espera, contornando o problema. Eu não vi o problema desde então, mas também não encontrei uma situação semelhante.

Como eu apontei no meu comentário para @Claran, há uma pergunta asktom.com em que ele afirma como parte de sua resposta que um standby deve ser executado no modo archivelog. Então você tem isso.

Graças a David e Claran por suas respostas, +1 para cada um por seus esforços.

Atualização (24/12/2009):

Parece que há um patch para um vazamento de memória no processo do SQL Apply. Está no patch CPUJul2009. Vou precisar de uma janela para atualizar, então vai demorar um pouco. O problema voltou a ocorrer na semana passada. Parece estar relacionado ao fato de que o processo log mineiro mantém toda a transação na memória até ver o commit. Para mim, esta é uma receita para o fracasso!

    
por 11.12.2009 / 18:03
2

Eu não executaria um banco de dados em espera no modo archivelog. Eu desligaria isso primeiro e depois tentaria ver o que acontece. Quanto ao erro de falta de memória: Suponho que você esteja recebendo erros "ORA-04030". Se não, por favor, poste o número do erro aqui. Se sim, então dê uma olhada no seguinte no oracle "My support" site. MS-Windows: Etapas rápidas para resolver erros ORA-04030 no 10G [ID 762031.1]

    
por 04.12.2009 / 18:05
2

As configurações dos seus parâmetros de memória no Primário e em Espera são os mesmos? Obviamente, seu primário pode concluir com êxito a transação grande, estou querendo saber se existem diferenças de parâmetros que podem causar esse problema no lado de espera.

    
por 04.12.2009 / 21:18
0

O modo de log de arquivo é obrigatório para bancos de dados em standby - confie em mim (eu executo vários desses recursos lógicos). Você precisa aumentar a quantidade de SGA disponível para refazer lógico, ou se a tabela não é importante, você pode excluí-la do modo de espera. A maneira mais fácil de fazer isso é usar o Enterprise Manager.

    
por 27.12.2010 / 19:08