Wednesday, August 21, 2013

Datapump export failed with ORA-01555 on table with LOB column.


Problem description:

Datapump export failed with ORA-01555 on table with LOB column. and there is no LOB corruption.


ORA-31693: Table data object "OWNER"."MY_LOB_TABLE" failed to load/unload and is being skipped due to error:
ORA-02354: error in exporting/importing data
ORA-01555: snapshot too old: rollback segment number 6 with name "_SYSSMU6_1307891672$" 


Cause:

The LOB Retention is not defined properly.

This is confirmed by the queries:

SQL> show parameter undo;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS1


SQL> select max(maxquerylen) from gv$undostat;

MAX(MAXQUERYLEN)
----------------
            2279

SQL> select retention from dba_lobs where table_name='OWNER.MY_LOB_TABLE';

RETENTION
----------
900

Solution:

SQL> alter system set undo_retention = 2400 scope = BOTH;

System altered.

SQL> alter table OWNER.MY_LOB_TABLE modify lob(LOB_COLUMN) (pctversion 5);

Table altered.

SQL> alter table OWNER.MY_LOB_TABLE modify lob(LOB_COLUMN) (retention);

Table altered.

SQL> select retention from dba_lobs where table_name='OWNER.MY_LOB_TABLE';

RETENTION
----------
      2400


No comments:

Post a Comment