Pular para o conteúdo
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #96772
    C-S-R
    Participante

      Boa tarde a todos,

      Depois de uma queda de energia ao tentar subir o banco esta aparecendo erro ora-600

      SQL> shutdown abort
      ORACLE instance shut down.
      SQL> startup
      ORACLE instance started.

      Total System Global Area 603979776 bytes
      Fixed Size 1220796 bytes
      Variable Size 218107716 bytes
      Database Buffers 377487360 bytes
      Redo Buffers 7163904 bytes
      Database mounted.
      ORA-00600: internal error code, arguments: [kcratr1_lastbwr], [], [], [], [],
      [], [], []

      alguns lugares na net resolveram esse problema com database recover porém:

      SQL> recover database;
      ORA-00283: recovery session canceled due to errors
      ORA-12801: error signaled in parallel query server P001
      ORA-00600: internal error code, arguments: [3020], [2], [8565], [8397173], [],
      [], [], []
      ORA-10567: Redo is inconsistent with data block (file# 2, block# 8565)
      ORA-10564: tablespace UNDOTBS1
      ORA-01110: data file 2: '/oracle/10g/10.2.0/oradata/orcl/undotbs01.dbf'
      ORA-10560: block type 'KTU UNDO BLOCK'

      Alguem saberia como resolver esse problema?

      Desde ja agradeço a ajuda.

      Abrs.
      Cesar

      #96776
      antonioDBA
      Participante

        Graça e Paz Cesar! Tudo bem?

        Bom, código do tipo ORA-00600 é um erro genérico interno para as exceções dos programas Oracle. Ele indica que algum processo encontrou uma condição inesperada de baixo nível e que o primeiro argumento informado entre colchetes é onde ocorreu o erro interno. As causas prováveis são:
        – Devido a queda de energia, pode ter ocorrido algum falha/corrupção de setores no disco.
        – Falha de Hardware ou S.O.
        – Timeout.
        – Arquivo corrompido.
        – Crash de verificação de dados na memória.
        – Problema de Entrada/Saída na memória física.

        Ação:
        – Sugiro que você recrie os Control Files e Redo log Files, como se estivesse criando um clone de seu banco, algo pode ter ficado corrompido ou em algum setor ruim do seu disco, pois você pode observar que ele informa um outro erro informando inconsistência de alguns blocos de dados do redo file. (ORA-10567: Redo is inconsistent with data block (file# 2, block# 8565))
        -Verifique os diretórios ../bdump, ../cdump e ../udump. E verifique os arquivos de rastreamento que podem indicar o que causou o erro, tanto do Oracle como o do S.O . Você possui suporte do metalink? Se for o caso, envie estes arquivos ao Suporte do Oracle.

        Uma sugestão também interesse Cesar que podemos tirar com esse caso, é que realmente nós DBA’s devemos nos aproximar das outras áreas de TI, principalmente do pessoal de Infra e Redes, pois de uma forma ou de outra o trabalho deles está estritamente relacionado com o nosso, e assim podemos buscar meios para evitar problemas desse tipo, como soluções de redundância de energia para o ambiente de Banco por exemplo.

        Grande abraço,

        Antonio

        #96787
        C-S-R
        Participante

          Opa Antonio, blz.

          É realmente estou vendo com a equipe de Infra para tentar evitar esses problemas de energia.

          Desculpe minha ignorancia mas como faça para recriar os Control Files e Redo? Eu nao tenho copia deles, essa é uma base de produto interno, nem tenho backup dela, mas queria resolver sem ter que criar outra base.
          Vai que isso aconteceu um dia na Base de Produção, bate na madeira, rsrs.

          vlw pela ajuda, abraços.

          Cesar

          #96796
          antonioDBA
          Participante

            Olá César! Faça o seguinte:

            #Para Recriar o Log File:

            shutdown immediate;
            startup mount;

            alter database create logfile group x (indique o caminho e nome do logfile) size tamanho do logfile;
            onde x é o numero do logfile novo , que você pode ver com select * from v$log . Escolha o proximo numero do group.

            Faça este comando pelo menos para gerar dois novos logfiles.

            Vá no log do banco e veja o numero do grupo do logfile corrompido. Após isso digite com o banco montado:

            alter database clear logfile group y (y é o numero deste grupo).

            Para recriar o Control File:

            Obs.:A multiplexação de controlfiles é uma segurança do Oracle, portanto os arquivos control01.ctl, control02.ctl e control03.ctl são iguais.

            Se você quiser restaurar a cópia 3, faça um shutdown immediate no banco, copie o arquivo 02, cole, renomeie para 03, verifique se no seu arquivo de inicialização (init_INSTANCENAME.ora) os três arquivos estão listados e reinicia a instância.

            Se você ñ conseguir reiniciar a instância, comente o arquivo control03.ctl no seu arquivo de inicialização e tente reiniciá-lo de novo.

            ou execute o comando abaixo:

            CREATE CONTROLFILE REUSE SET DATABASE “DBNAME” RESETLOGS

            Espero que ajude!

            #96834
            C-S-R
            Participante

              Antonio obrigado pela ajuda.

              As coisas ficaram meio enroladas aqui nao tive tempo de fazer ainda.

              Vou tentar fazer assim que tiver um tempo.

              Att Cesar

            Visualizando 5 posts - 1 até 5 (de 5 do total)
            • Você deve fazer login para responder a este tópico.