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.