"- O erro é no disco, certo?"

PODE SER, como pode não ser : como já dito algumas vezes aqui, 
necessariamente durante a operação do banco Oracle os blocos ** são 
** carregados pra RAM e lá permanecem um tempo, mesmo depois dum 
COMMIT, certamente um pente de memória ruim ** PODE SIM SENHOR ** 
corromper um bloco.... Da mesma forma bugs podem causar isso, seja no 
SO, seja no próprio banco, seja em drivers/utilitários/aplicativos de 
SO (como softwares de storage, por exemplo)... E finalmente, 
tranquilamente ERROS DE OPERAÇÂO podem causar corrupção, como por 
exemplo recover de banco após uma operação NOLOGGING, um operador 
querendo (via utilitário do sistema, como antivírus ou soft de backup 
não-compatíveis) manipular arquivos do banco Oracle com banco 
aberto....

"Tem alguma forma de corrigir este problema?"

Sem dúvida, o procedimento será : 

a. para emergencialmente se livrar da condição de erro, é localizar o 
segmento e o extent localizados no bloco corrupto (consultando a 
DBA_EXTENTS), feito isso SE o segmento for do tipo que possa ser re-
construído sem perda (como um índice, por exemplo), marque o bloco 
como indisponível via DBMS_REPAIR (cheque os manuais de Admin pra 
sintaxe e modo de usar), e reconstrua o segmento. Caso esse bloco 
seja de um segmento de dados, que vc não pode perder, OU vc faz um 
block recover (se vc tiver backup RMAN atualizado) OU vc marca como 
inusável o bloco, dropa o segmento e volta backup (o procedimento 
exato varia de acordo com a tua política de backup), OU se não tiver 
backup atualizado vc pode tentar fazer um SALVAGE desse segmento , a 
nota Subject: Handling Oracle Block Corruptions in 
Oracle7/8/8i/9i/10g , de Doc ID: Note:28814.1  te lista as opções 
todas citadas.

b. o MAIS IMPORTANTE, depois que vc passou a poder acessar o tal 
dado, vc IMEDIATAMENTE TEM QUE descobrir a causa, senão isso vai se 
repetir DE NOVO, e de NOVO, e DE NOVO..... Pra isso, é chamar uma 
Empresa de manutenção de hardware, que vai fazer um check ** PROFUNDO 
** no hardware (ie, discos, RAM, controladora, placa-mãe, etc) do teu 
srevidor, ** levantar ** com o pessoal da Operação o que foi feito 
recentemente nessa máquina, que softs rodaram/foram instalados 
recentemente, E abrir chamado com a Oracle e com o teu Suporte de SO, 
pra ver o caso de bugs.

[]s

 Chiappa
 
--- Em oracle_br@yahoogrupos.com.br, "cegoncalvesvr" 
<[EMAIL PROTECTED]> escreveu
>
> Ola meus amigos,
> 
>     Utilizando o sistema, no momento de gerar um relatorio, surgiu 
o 
> seguinte erro no sistema:
> 
> ORA:01578 - Bloco de dados Oracle danificado (arquivo numero.13, 
> bloco num.845288). ORA:01110-13 do arquivo de 
> dados: 'E\Oracle\Oradata\cssj\MV2000_I.DBF - (Tablespace)
> 
> Fui no servidor e abri o arquivo alert, o erro esta abaixo:
> Corrupt block relative dba: 0x034ce5e8 (file 13, block 845288)
> Bad check value found during buffer read
> Data in bad block -
>  type: 6 format: 2 rdba: 0x034ce5e8
>  last change scn: 0x0000.057a7f29 seq: 0x2 flg: 0x04
>  consistency value in tail: 0x7f290602
>  check value in block header: 0xdea1, computed block checksum: 
0x1000
>  spare1: 0x0, spare2: 0x0, spare3: 0x0
> ***
> Reread of rdba: 0x034ce5e8 (file 13, block 845288) found same 
> corrupted data
> 
> - O erro é no disco, certo?
> Tem alguma forma de corrigir este problema?
> Isolar a area defeituosa?
> 
> Aguardo.
> Obrigado a todos.
>


  • ... cegoncalvesvr
    • ... jlchiappa
      • ... Jader Resende de Souza - Gestor de Atendimento - Núcleo Relatório Suporte - Engeman EAM
        • ... Marcio Portes
          • ... Jader Resende de Souza - Gestor de Atendimento - Núcleo Relatório Suporte - Engeman EAM

Responder a