Rosiano,

Desculpe a demora na resposta, mas muito obrigado pelo retorno.
Com os procedimentos que você passou consegui resolver o problema.

Obrigado,

Luciano

-----Mensagem original-----
De: Rosiano Vieira de Sales [mailto:[EMAIL PROTECTED] 
Enviada em: segunda-feira, 7 de novembro de 2005 13:53
Para: oracle_br@yahoogrupos.com.br
Assunto: RES: [oracle_br] Problemas com blocos danificado

Luciano
 
Veriifque qual objeto esta corrompido através da consulta abaixo:
 
select tablespace_name, relative_fno,
segment_type, owner, segment_name
from dba_extents
where file_id = 1
and 50572 between block_id and block_id + blocks -1
 
depois crie esta procedure abaixo que o amigo Renan disponibilizou a tempos 
atrás e me ajudou muito:
 
CREATE OR REPLACE  PROCEDURE "SYS"."UTLVERBLK"  (PSCHEMA IN 
    VARCHAR2,    /* SCHEMA NAME, OWNER          */
                                              POBJECT IN VARCHAR2,    /* 
OBJECT_NAME                 */
                                              POBJTYP IN NUMBER) IS   /* 
1-TABLE, 2-INDEX, 3-CLUSTER */
        /*

             PROCEDURE............UTLVERBKL
             FUNCAO...............RESOLVER PROBLEMA DE CORRUPTED BLOCK
             DATA.................14/03/2004
             AUTHOR...............RENAN MEDEIROS

        */
        CRITAB      VARCHAR2(1)    := 'S';
        NUMBLK      BINARY_INTEGER := 0;
        BEGIN
        /*
           VERIFICA SE PRECISA CRIAR TABELA DE REPARO
        */
        BEGIN
             SELECT 'N' INTO CRITAB
             FROM   USER_TABLES
             WHERE  TABLE_NAME ='REPAIR_UTLVERBLK_TAB_'||POBJTYP;
             EXCEPTION
                 WHEN NO_DATA_FOUND THEN NULL;
        END;
        DBMS_OUTPUT.ENABLE (120000);
        IF   CRITAB = 'S'
        THEN 
DBMS_REPAIR.ADMIN_TABLES('REPAIR_UTLVERBLK_TAB_'||POBJTYP,1,POBJTYP);
        END  IF;
        DBMS_REPAIR.CHECK_OBJECT      ( PSCHEMA,
                                        POBJECT,
                                        NULL,
                                        POBJTYP,
                                        'REPAIR_UTLVERBLK_TAB_'||POBJTYP,
                                        NULL,
                                        NULL,
                                        NULL,
                                        NULL,
                                        NUMBLK);

        DBMS_OUTPUT.PUT_LINE('UTLVERBLK V.1.0/14/03/2005 - CHECK OBJECT - 
'||TO_CHAR(SYSDATE,'DD/MM/YYYY-HH24:MI:SS'));
        DBMS_OUTPUT.PUT_LINE('== SCHEMA    => '||PSCHEMA);
        DBMS_OUTPUT.PUT_LINE('== OBJECT    => '||POBJECT);
        DBMS_OUTPUT.PUT_LINE('== OBJTYPE   => '||POBJTYP||' - 1=> TABLE, 2=> 
INDEX, 3=> CLUSTER');
        DBMS_OUTPUT.PUT_LINE('== BLOCKS    => '||NUMBLK);
        DBMS_OUTPUT.PUT_LINE('== REPAIRTAB => REPAIR_UTLVERBLK_TAB_'||POBJTYP);

        DBMS_REPAIR.FIX_CORRUPT_BLOCKS( PSCHEMA,
                                        POBJECT,
                                        NULL,
                                        POBJTYP,
                                        'REPAIR_UTLVERBLK_TAB_'||POBJTYP,
                                        NULL,
                                        NUMBLK);
        DBMS_OUTPUT.PUT_LINE('UTLVERBLK V.1.0-14/03/2005 - FIX CORRUPTED BLOCKS 
- '||TO_CHAR(SYSDATE,'DD/MM/YYYY-HH24:MI:SS'));
        DBMS_OUTPUT.PUT_LINE('== SCHEMA    => '||PSCHEMA);
        DBMS_OUTPUT.PUT_LINE('== OBJECT    => '||POBJECT);
        DBMS_OUTPUT.PUT_LINE('== OBJTYPE   => '||POBJTYP||' - 1=> TABLE, 2=> 
INDEX, 3=> CLUSTER');
        DBMS_OUTPUT.PUT_LINE('== BLOCKS    => '||NUMBLK);

        DBMS_REPAIR.SKIP_CORRUPT_BLOCKS(PSCHEMA,
                                        POBJECT,
                                        POBJTYP,
                                        1);
        DBMS_OUTPUT.PUT_LINE('UTLVERBLK V.1.0-14/03/2005 - SKIP CORRUPT BLOCKS 
- '||TO_CHAR(SYSDATE,'DD/MM/YYYY-HH24:MI:SS'));
        DBMS_OUTPUT.PUT_LINE('== SCHEMA    => '||PSCHEMA);
        DBMS_OUTPUT.PUT_LINE('== OBJECT    => '||POBJECT);
        DBMS_OUTPUT.PUT_LINE('== OBJTYPE   => '||POBJTYP||' - 1=> TABLE, 2=> 
INDEX, 3=> CLUSTER');


        END UTLVERBLK;
/

 
Após criar a procedure execute-a informando os parâmetros conforme abaixo:

SET SERVEROUTPUT ON;

EXEC UTLVERBLK('OWNER','OBJECT_NAME',OBJECT_TYPE);
 
sendo que OBJECT_TYPE=1 (TABLE), OBJECT_TYPE=2 (INDEX) e OBJECT_TYPE=3 (CLUSTER)
 
caso não queira utilizar a procedure vc pode usar a DBMS_REPAIR
 
espero ter ajudado
 

 
 
 
 

 

        -----Mensagem original----- 
        De: oracle_br@yahoogrupos.com.br em nome de Luciano Santos 
        Enviada: seg 07/11/2005 11:50 
        Para: oracle_br@yahoogrupos.com.br 
        Cc: 
        Assunto: [oracle_br] Problemas com blocos danificado
        
        

        Pessoal,
        
        
        
        A dois dias atrás tive problema com alguns discos do servidor. A Dell 
veio arrumou e agora eu fui retornar o ultimo backup físico válido. Retornei 
normalmente e apliquei os archives, mas verifiquei que quando tento dar um 
shutdown no banco ele me retorna o erro abaixo:
        
        
        
        ORA-01578: bloco de dados ORACLE danificado (arquivo núm. 1, bloco 
núm. 50572)
        ORA-01110: 1 do arquivo de dados: 'D:\ORACLE\ORADATA\PT01\SYSTEM01.DBF'
        
        
        
        Restaurei o backup novamente e não apliquei os archives e o erro não 
acontece. O que pode estar acontecendo?? Será que tem algum archive 
danificado?? Como posso resolver isso???
        
        
        
        Obrigado,
        
        
        
        Luciano
        
        
        
        [As partes desta mensagem que não continham texto foram removidas]
        
        
        
        ORACLE_BR APOIA 2ºENPO-BR 
_____________________________________________________________________
        O 2º Encontro Nacional de Profissionais Oracle realizado no dia 
05/11/2005 no auditório da FIAP em São Paulo foi melhor que a primeira. 
Confira no GPO (do nosso amigo Willian) http://www.profissionaloracle.com.br 
<http://www.profissionaloracle.com.br/> 
        _____________________________________________________________________
        Area de download oracle_br - http://www.4shared.com/dir/101727/a4dcc423 
        Links do Yahoo! Grupos
        
        
        
        
        
        
        
        



[As partes desta mensagem que não continham texto foram removidas]



ORACLE_BR APOIA 2ºENPO-BR 
_____________________________________________________________________
O 2º Encontro Nacional de Profissionais Oracle realizado no dia 05/11/2005 no 
auditório da FIAP em São Paulo foi melhor que a primeira. Confira no GPO (do 
nosso amigo Willian) http://www.profissionaloracle.com.br
_____________________________________________________________________
Area de download oracle_br - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos




 






--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a