Dados:
Oracle 11gR2
SO: Linux 64
 
 
Senhores, bom dia.
 
Ontem tive o prazer de me deparar com esse erro:
 ORA-02354: error in exporting/importing data
ORA-01555: snapshot too old: rollback segment number with name " " too small
ORA-22924: snapshot too old
 
Ao realizar a migração de uma base de produção, a migração foi feita com 
"sucesso", mas os registros dessa tabela que possuia mais de 2 milhões de 
linhas não foram importados, e o erro só foi descoberto depois de homologado e 
tudo mais.
 
Eu inicialmente desconfiei da tablespace de UNDO, mas vi que não tinha nada a 
ver, pois a tabela possuia dados de LOB, e os lobs são gerenciados pelo PCTFREE 
e RETENTION, mas esse erro também pode ser dado por LOBs corrompidos.
 
Analisando:
 
 Export Fails With Errors ORA-2354 ORA-1555 ORA-22924 And How To Confirm LOB 
Segment Corruption
Using Export Utility? (Doc ID 833635.1)
 
 
Descobri que um registro de toda a tabela estava corrompido, um ROWID estava 
"BIXADO", então fiz o expdp novamente da tabela excluindo apenas esse ROWID.
 
 
O que gostaria de saber é o seguinte:
 
Existe como eu recuperar o dado desse ROWID?  Eu fiz um select e ele me trouxe 
os campos ainda acessíveis do ROWID, mas o campo LOB ele estoura o erro.
 
Ao realizar um backup full, no log ele não me mostra que existe corrupção de 
dados, será pq é uma corrupção lógica?
 
Gostaria de saber pq isso também acontece, existiu uma outra tabela que possui 
campos LOB que estava com esse erro.
 
Abraços.

Responder a