ORA-30926 while using impdp over a database link

3 min read
Feb 3, 2017 12:00:00 AM

Background

The other day I was doing an import using impdp in 12.1.0.2, and received the following error:'ORA-30926: unable to get a stable set of rows in the source tables'.

 
 Starting "SYS_PYTHIAN"."SYS_IMPORT_TABLE_03": sys_pythian/******** parfile=table_import.par 
 Processing object type TABLE_EXPORT/TABLE/TABLE
 Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
 Processing object type TABLE_EXPORT/TABLE/COMMENT
 Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
 Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
 Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
 Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
 Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
 Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
 ORA-39126: Worker unexpected fatal error in KUPW$WORKER.STATS_LOAD [MARKER] 
 MARKER
 ORA-30926: unable to get a stable set of rows in the source tables
 ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
 ORA-06512: at "SYS.KUPW$WORKER", line 11265
 ----- PL/SQL Call Stack -----
  object line object
  handle number name
 0x12f199188 27116 package body SYS.KUPW$WORKER
 0x12f199188 11286 package body SYS.KUPW$WORKER
 0x12f199188 24286 package body SYS.KUPW$WORKER
 0x12f199188 24415 package body SYS.KUPW$WORKER
 0x12f199188 20692 package body SYS.KUPW$WORKER
 0x12f199188 10206 package body SYS.KUPW$WORKER
 0x12f199188 13381 package body SYS.KUPW$WORKER
 0x12f199188 3173 package body SYS.KUPW$WORKER
 0x12f199188 12035 package body SYS.KUPW$WORKER
 0x12f199188 2081 package body SYS.KUPW$WORKER
 0x12ffe7908 2 anonymous block
 In STATS_UNLOAD
 DBMS_STATS.EXPORT_STATS_FOR_DP
 DBMS_STATS.EXPORT_STATS_FOR_DP
 In STATS_LOAD with process_order 39
 Fixing up the name in the impdp stat table
 ORA-39126: Worker unexpected fatal error in KUPW$WORKER.STATS_LOAD [MARKER] 
 ORA-30926: unable to get a stable set of rows in the source tables
 ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
 ORA-06512: at "SYS.KUPW$WORKER", line 11259
 ----- PL/SQL Call Stack -----
  object line object
  handle number name
 0x6fc030c8 27116 package body SYS.KUPW$WORKER
 0x6fc030c8 11286 package body SYS.KUPW$WORKER
 0x6fc030c8 24286 package body SYS.KUPW$WORKER
 0x6fc030c8 24415 package body SYS.KUPW$WORKER
 0x6fc030c8 10105 package body SYS.KUPW$WORKER
 0x6fc030c8 13381 package body SYS.KUPW$WORKER
 0x6fc030c8 3173 package body SYS.KUPW$WORKER
 0x6fc030c8 12035 package body SYS.KUPW$WORKER
 0x6fc030c8 2081 package body SYS.KUPW$WORKER
 0x134b42cf8 2 anonymous block
 In STATS_UNLOAD
 DBMS_STATS.EXPORT_STATS_FOR_DP
 DBMS_STATS.EXPORT_STATS_FOR_DP
 In STATS_LOAD with process_order 39
 Fixing up the name in the impdp stat table
 Job "SYS_PYTHIAN"."SYS_IMPORT_TABLE_03" stopped due to fatal error at Thu Jan 19 13:47:30 2017 elapsed 0 00:01:58

Situation

While investigating the situation, I found that the source database had OLAP option removed and found a document 1353491.1 (that I thought could help) which stated that if the package DBMS_CUBE_EXP is present in SYS.EXPPKGACT$, and it does not exist, it should be deleted. So that's what I did:

 
 SQL> SELECT comp_id, status, SUBSTR(version,1,10) version, comp_name 
 FROM dba_registry ORDER BY 1;
 
 COMP_ID STATUS VERSION COMP_NAME
 ------------------------------ ----------- ---------- --------------------------------------------
 
 CATALOG VALID 12.1.0.2.0 Oracle Database Catalog Views
 
 CATPROC VALID 12.1.0.2.0 Oracle Database Packages and Types
 
 XDB VALID 12.1.0.2.0 Oracle XML Database
 
 SQL> select * 
 FROM SYS.EXPPKGACT$ 
 WHERE PACKAGE = 'DBMS_CUBE_EXP' AND SCHEMA= 'SYS';
 
 PACKAGE SCHEMA CLASS LEVEL#
 
 ----------------- ---------- ---------- ----------
 DBMS_CUBE_EXP SYS 4 1050
 
 SQL> select PACKAGE, SCHEMA, class from exppkgact$ where (schema, package) 
 not in 
 (select owner, object_name 
 from dba_objects 
 where object_type='PACKAGE');
 
 PACKAGE SCHEMA CLASS
 -------------------------- ---------- ---------- 
 DBMS_CUBE_EXP SYS 4
 
 SQL> create table exppkgact$_bck as select * from exppkgact$;
 
 Table created.
 
 SQL> delete from exppkgact$ where package = 'DBMS_CUBE_EXP' and schema = 'SYS';
 
 1 row deleted.
 
 SQL> commit;
 
 Commit complete.

Error Message

But I still got the same error. After conducting more research, I found a workaround to run the import without stats and once I did that, I was able to run the import successfully. Since this was on a development database, I just ran stats on the table, but if you needed to you could export your stats and import them, in this case I only excluded the stats:

 [oracle@ ~ ]$ cat table_import.par
 tables=TEST.TEST_TABLE
 directory=export_dir_pythian 
 logfile=impdp.log
 network_link=PYTHIAN
 TABLE_EXISTS_ACTION=replace
 EXCLUDE=STATISTICS
 STATUS=120
 
 [oracle@ ~ ]$ cat impdp.log
 ;;; 
 Import: Release 12.1.0.2.0 - Production on Thu Jan 19 13:49:57 2017
 
 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
 ;;; 
 Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
 With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
 Advanced Analytics and Real Application Testing options
 Starting "SYS_PYTHIAN"."SYS_IMPORT_TABLE_04": sys_pythian/******** parfile=table_import.par 
 Processing object type TABLE_EXPORT/TABLE/TABLE
 Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
 Processing object type TABLE_EXPORT/TABLE/COMMENT
 Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
 Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
 Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
 . . imported "TEST"."TEST_TABLE" 222224 rows
 Job "SYS_PYTHIAN"."SYS_IMPORT_TABLE_04" successfully completed at Thu Jan 19 13:50:07 2017 elapsed 0 00:00:07 

Conclusion

I hope this workaround helps you in the event that you ever face this error while doing an impdp over a database link. This was originally posted in rene-ace.com

Oracle Database Consulting Services

Ready to optimize your Oracle Database for the future?

 

On this page

Ready to unlock value from your data?

With Pythian, you can accomplish your data transformation goals and more.