ORA-00600 ao coletar estatísticas

Foi constatado o temido ORA-00600 (erro genérico) no alert log de um ambiente Oracle 11g (11.2.0.1).

Aqui vale mencionar que está versão é base da release 2 do Oracle 11g e não é aconselhado utiliza-lá em ambientes de produção.
Este ambiente precisava estar nesta versão por conta de testes que estavam sendo realizados.

Ao investigar, vi que o erro ocorria durante a janela de manutenção automática do Oracle que, entre outras coisas, realiza a coleta de estatísticas.

Em testes de coleta de estatísticas manualmente, o mesmo erro foi constatado:

Conforme Doc ID 1138205.1, encontrado no My Oracle Support (MOS), o erro ocorre por conta do “Bug 9056912 – GATHERING STATISTICS ON EXTERNAL TABLES REQUIRES NULL FOR ESTIMATE_PERCENT”.

Como solução, o DOC propõe as seguintes alternativas:

  • Realizar upgrade para o 12.1.0.1 ou superior;
  • Aplicar o patch set 11.2.0.2 ou superior;
  • Aplicar o interim patch 9056912 (Se disponível para sua plataforma e versão);
  • E a utilização de um “workaround”, uma especie de manobra para contornar o problema, sem resolver completamente.

As duas primeiras opções realmente são as mais indicadas, mas como foi dito antes, este ambiente precisa continuar na versão que está. Dito isso, iremos ficar com a terceira opção, aplicar o interim patch 9056912.

      1. Efetuar o download do patch e mover para o servidor, salvei no diretório /tmp;
      2. Antes de iniciar o processo, é necessário fazer o shutdown de todas as instâncias ligadas ao ORACLE_HOME que será aplicado o pacth.
      3. Por precaução, efetuar a cópia do ORACLE_HOME completo, para outro diretório (backup).
      4. Descompactar o arquivo do pacth e entrar no diretório extraído
      5. Utilizando o utilitário OPatch, iremos fazer a verificação do status atual do ambiente (listando os patchs instalados), antes de aplicar o novo patch:

        Perceba a mensagem: “There are no Interim patches installed in this Oracle Home”.
      6. Agora vamos aplicar o patch, ainda no diretório do patch descompactado, chame o utilitário OPatch com o parâmetro apply:
      7. Patch aplicado com sucesso. Para confirmar, vamos executar novamente o lsinventory:

        Tudo certo! Após a aplicação do patch os erros pararam de ocorrer.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *