Pular para o conteúdo

Fóruns Banco de dados Oracle Oracle 10g – Erro no redo log. Oracle 10g – Erro no redo log.

#74475
Anônimo

    [quote=”Gustavo”:2eb1u7um]Fala galera….
    Aqui na empresa estamos iniciando testes para converter o sistema atual para o Oracle, instalamos o Oracle 10g num servidor Linux para fazer testes, aprender um pouco a trabalhar com o banco enquanto a diretoria n?o aprova o curso.
    Mas ontem o banco caiu e n?o conseguimos mais levantar o mesmo ocorrendo o seguinte erro:

    SQL> conn /as sysdba
    Connected to an idle instance.
    SQL> startup
    ORACLE instance started.

    Total System Global Area 285212672 bytes
    Fixed Size 778776 bytes
    Variable Size 103554536 bytes
    Database Buffers 180355072 bytes
    Redo Buffers 524288 bytes
    Database mounted.
    ORA-00354: corrupt redo log block header
    ORA-00353: log corruption near block 413 change 137438953696 time 06/01/2005
    08:57:29
    ORA-00312: online log 2 thread 1: ‘/u01/app/oracle/oradata/SOPHUSDB/redo02.log’

    Se algu?m souber e puder ajudar eu agrade?o.

    T+….[/quote]

    Gustavo, bom dia.

    O problema ocorreu porque um dos arquivos de log do banco est? corrompido. Isto pode ter acontecido por uma s?rie de raz?es que v?o desde erros de mem?ria a erros de disco, at? o desligamento anormal do banco de dados ou do servidor.

    No seu caso, deve ser levantado como o banco caiu.

    Os arquivos de log online (seu caso) s?o uma das partes mais importantes do banco para manter sua integridade. Por isso ele pode ser espelhado para q no caso da falha de um o oracle possa utilizar a segunda ou terceira c?pia dele.

    Se quando vc criou o banco vc criou os logs com mais de um membro, a solu??o ser? eliminar este log (com o banco apenas montado- n?o aberto) e novamente montar o banco com o log que ficou.

    Se quando vc criou o banco vc n?o criou os logs com mais de um membro cada grupo, e seu banco n?o est? em modo de arquivamento, vc perdeu o banco.

    Sorte que ? um teste! Mas pode acontecer em um ambiente de produ??o.

    para verificar isso tudo fa?a:

    select * from v$logfile;

    Com este select (n?o precisa do banco estar aberto para fazer este select). Vc vai verificar se o grupo onde se encontrar o arquivo corrompido tem outro membro.

    Se n?o tiver. Crie novamente o banco – Vc perdeu seu banco.

    Se tiver outro membro o grupo onde est? o arquivo q est? corrompido, elimine-o do banco com o seguinte comando:

    alter database drop logfile member ‘/u01/app/oracle/oradata/SOPHUSDB/redo02.log’;

    A? vc pode usar o banco. Mas para sua seguran?a crie um novo membro novamente. Para isso consulte os manuais do Oracle.