EXP-00056: ORACLE error 1115 encountered
ORA-01115: IO error reading block from file 1 (block # 112022)
ORA-01110: data file 1: 'C:\ORACLE\ORADATA\SYSTEM01.DBF'
ORA-27091: skgfqio: unable to queue I/O
OSD-04006: ReadFile() failure, unable to read from file
O Banco de dados não estava em archivelog e o backup era feito apenas com export, o que fazia que uma tabela não tivesse seus dados exportados. O que podemos fazer neste caso ?Tentativa 1
Primeiro tentei recuparar o datafile com o Oracle dbv (database verify utility)
dbv file='C:\ORACLE\ORADATA\SYSTEM01.DBF'
Infelizmente o procedimento não resolveu o nosso problema ....Tentativa 2
Parti para tentar descobri que informações estão contidas no bloco do S.O defeituosos.
SELECT *
FROM DBA_EXTENTS
WHERE FILE_ID= :p1
AND :p2 BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS;
onde :p1 é o numero do datafile e :p2 é o numero do bloco defeituoso.
o que consegui fazer ? fiz um tabela clone (com a mesma estrutura da tabela com informacao em perigo) e fiz uma cópia de todas as informações possíveis.
Depois disso fiz um truncate na tabela com os dados com problema (no meu caso esta tabela não tinha relacionamento que outra tabela tivesse chave dependente).
Movi a tabela para uma nova tablespace temporário e preenchi esta tabela com os dados da tabela temporária.Depois disso fiz uma exportação Full da informação do SGDB.Troquei o HD defeituoso e refizemos a instalação do banco e o import dos dados.
Infelizmente a situação não garantiu em 100% a recuperação dos dados mas existiu uma forma de converter o problema e não torna-lo em algo ainda pior.
é muito importante uma politica de Backup segura !!!
Segue o link que me ajudou para chegar a uma solucao :
http://forums.oracle.com/forums/thread.jspa?threadID=2127758
Nenhum comentário:
Postar um comentário