数据库学习日常案例2031215-Expdp Failing With ORA-06512: At “SYS.KUPC$QUE_INT“ errorstack 跟踪ora-0955

1 APPLIES TO:

Oracle Database - Enterprise Edition - Version 11.2.0.3 and later
Oracle Database Cloud Schema Service - Version N/A and later
Oracle Database Exadata Cloud Machine - Version N/A and later
Oracle Cloud Infrastructure - Database Service - Version N/A and later
Oracle Database Exadata Express Cloud Service - Version N/A and later
Information in this document applies to any platform.

2 SYMPTOMS

When trying to run Export utility expdp, it fails with below error:

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
ORA-31626: job does not exist
ORA-31637: cannot create job SYS_EXPORT_TABLE_01 for user SYS
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT_INT", line 798
ORA-39244: Event to disable dropping null bit image header during relational select
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.KUPC$QUE_INT", line 1825
ORA-00955: name is already used by an existing object

3 CHANGES

Recreated Datapump queue (KUPC$DATAPUMP_QUETAB_)

4 CAUSE

The ERRORSTACK trace for ORA-00955 shows the object "sys.AQ$_KUPC$DATAPUMP_QUETAB_1_N" as the culprit for the ORA-00955 error:

dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x0, level=4, mask=0x0)
----- Error Stack Dump -----
ORA-00955: name is already used by an existing object
----- Current SQL Statement for this session (sql_id=80hmdx0fpstrg) -----
CREATE SEQUENCE "SYS"."AQ$_KUPC$DATAPUMP_QUETAB_1_N" START WITH 1
----- PL/SQL Stack -----
----- PL/SQL Call Stack -----

This will happen whenever Data Pump queue table "KUPC$DATAPUMP_QUETAB_" is recreated and for some reason the SEQUENCE object associated to it is not dropped properly.

Note: To enable ERRORSTACK trace before executing the expdp utility, run below command at the affected database:

conn / as sysdba
alter system set events '955 trace name errorstack level 4' ;

The Errorstack trace will be placed at the database diagnostic trace directory.

To disable tracing event execute at any time:

alter system set events '955 trace name errorstack off' ;

5 SOLUTION

Follow these steps to fix this:

1. Rename SEQUENCE object SYS.AQ$_KUPC$DATAPUMP_QUETAB_1_N:

connect / as sysdba
rename AQ$_KUPC$DATAPUMP_QUETAB_1_N to AQ$_KUPC$DATAPUMP_QUETAB_1_N_B;

2. Check if expdp runs fine

3. Assuming that the problem is solved after renaming of SEQUENCE object, the next step is to drop it:

connect / as sysdba
drop sequence AQ$_KUPC$DATAPUMP_QUETAB_1_N_B;

Note: For RAC environments, let say 2-node RAC, there may be a second SEQUENCE object called SYS.AQ$_KUPC$DATAPUMP_QUETAB_2_N, so the same above steps must be carried to SYS.AQ$_KUPC$DATAPUMP_QUETAB_2_N as well. For 3-node RAC and so on, there will be 3 sequences and so on, all must be removed as noted above.

你可能感兴趣的:(ORACLE数据库追踪管理,数据库,学习,oracle)