記一次 oracle expdp 匯出錯誤
前幾天在一個環境上做了一個expdp 匯出測試,但是發現expdp有問題,作業系統是aix 6105,oracle版本是11.1.0.7,執行expdp時候報錯如下
Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining
and Real Application Testing options
ORA-31626: job does not exist
ORA-31637: cannot create job SYS_EXPORT_FULL_01 for user SYSTEM
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT_INT", line 736
ORA-39080: failed to create queues "KUPC$C_1_20140214183234" and "" for Data Pump job
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPC$QUE_INT", line 1665
ORA-24203: operation failed, queue table SYS.KUPC$DATAPUMP_QUETAB has errors
後來檢視一下資料庫中的無效的資料庫物件
SQL> select object_name from all_objects where owner='SYS' and status='INVALID';
OBJECT_NAME
------------------------------
KUPC$DATAPUMP_QUETAB
SYSNTfVzZ/2KLQNTgQ8CoAAJA1A==
SYSNTfVzZ/2KNQNTgQ8CoAAJA1A==
SYSNTfVzZ/2KPQNTgQ8CoAAJA1A==
AQ$_KUPC$DATAPUMP_QUETAB_V
AQ$_KUPC$DATAPUMP_QUETAB_E
AQ$_KUPC$DATAPUMP_QUETAB_F
AQ$KUPC$DATAPUMP_QUETAB
SBF_PUBLIC
9 rows selected.
發現無效物件中有datapump元件,後來經過同事介紹在metalink 上有關於此問題解決辦法
解決方法
1. 刪除 datapump queue 表,在sql下 執行下面
exec dbms_aqadm.drop_queue_table(queue_table =>'SYS.KUPC$DATAPUMP_QUETAB',
force=> TRUE);
2.執行下面儲存過程再次建立
BEGIN
dbms_aqadm.create_queue_table(queue_table => 'SYS.KUPC$DATAPUMP_QUETAB',
multiple_consumers => TRUE,
queue_payload_type =>'SYS.KUPC$_MESSAGE',
comment => 'DataPump Queue Table',
compatible=>'8.1.3');
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -24001 THEN NULL;
ELSE RAISE;
END IF;
END;
3.再次執行一個utlrp.sql
4 再次查下一個無效元件
SQL> select object_name from all_objects where owner='SYS' and status='INVALID';
OBJECT_NAME
------------------------------
SBF_PUBLIC
5 重啟一下例項,最後expdp可以正常執行了,此解決方法原始出處是在metalink 上一篇文章,文章ID 361025.1 最後謝謝我的同事!
Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining
and Real Application Testing options
ORA-31626: job does not exist
ORA-31637: cannot create job SYS_EXPORT_FULL_01 for user SYSTEM
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT_INT", line 736
ORA-39080: failed to create queues "KUPC$C_1_20140214183234" and "" for Data Pump job
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPC$QUE_INT", line 1665
ORA-24203: operation failed, queue table SYS.KUPC$DATAPUMP_QUETAB has errors
後來檢視一下資料庫中的無效的資料庫物件
SQL> select object_name from all_objects where owner='SYS' and status='INVALID';
OBJECT_NAME
------------------------------
KUPC$DATAPUMP_QUETAB
SYSNTfVzZ/2KLQNTgQ8CoAAJA1A==
SYSNTfVzZ/2KNQNTgQ8CoAAJA1A==
SYSNTfVzZ/2KPQNTgQ8CoAAJA1A==
AQ$_KUPC$DATAPUMP_QUETAB_V
AQ$_KUPC$DATAPUMP_QUETAB_E
AQ$_KUPC$DATAPUMP_QUETAB_F
AQ$KUPC$DATAPUMP_QUETAB
SBF_PUBLIC
9 rows selected.
發現無效物件中有datapump元件,後來經過同事介紹在metalink 上有關於此問題解決辦法
解決方法
1. 刪除 datapump queue 表,在sql下 執行下面
exec dbms_aqadm.drop_queue_table(queue_table =>'SYS.KUPC$DATAPUMP_QUETAB',
force=> TRUE);
2.執行下面儲存過程再次建立
BEGIN
dbms_aqadm.create_queue_table(queue_table => 'SYS.KUPC$DATAPUMP_QUETAB',
multiple_consumers => TRUE,
queue_payload_type =>'SYS.KUPC$_MESSAGE',
comment => 'DataPump Queue Table',
compatible=>'8.1.3');
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -24001 THEN NULL;
ELSE RAISE;
END IF;
END;
3.再次執行一個utlrp.sql
4 再次查下一個無效元件
SQL> select object_name from all_objects where owner='SYS' and status='INVALID';
OBJECT_NAME
------------------------------
SBF_PUBLIC
5 重啟一下例項,最後expdp可以正常執行了,此解決方法原始出處是在metalink 上一篇文章,文章ID 361025.1 最後謝謝我的同事!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-1797349/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【ORACLE 匯入匯出】exp 錯誤Oracle
- oracle匯入匯出之expdp/impdpOracle
- expdp 匯出簡單筆記筆記
- Oracle資料泵匯出匯入(expdp/impdp)Oracle
- Oracle expdp資料泵遠端匯出Oracle
- Oracle 12c expdp和impdp匯出匯入表Oracle
- expdp 匯出指令碼指令碼
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- oracle按照表條件expdp匯出資料Oracle
- 【EXPDP/IMPDP】使用 EXPDP/IMPDP工具“模糊”匯出和匯入
- 使用expdp匯出資料,報ORA-01691表空間不足錯誤
- Oracle 11.2.0.2 exp匯出錯誤處理一則Oracle
- oracle之EXP匯出表空間錯誤解決Oracle
- oracle 10.2.0.4 expdp全庫匯出 和分使用者impdp匯入的記錄Oracle
- expdp impdp只匯出匯入viewView
- Oracle expdp/impdp匯出匯入命令及資料庫備份Oracle資料庫
- Oracle expdp/impdp匯入匯出備份資料庫指令碼Oracle資料庫指令碼
- oracle 10g expdp匯出報錯ora-4031的解決方法Oracle 10g
- expdp/impdp來解決exp/imp出現的錯誤並匯入指定表空間
- expdp 匯出特定物件物件
- expdp與impdp全庫匯出匯入
- Oracle使用資料泵expdp,impdp進行資料匯出匯入Oracle
- oracle 11g expdp匯出報ORA-24001Oracle
- Oracle 11g 透過expdp按日期匯出表Oracle
- Oracle expdp匯出多表或表中的部分資料Oracle
- AIX上oracle匯出備份EXP-00056: 遇到 ORACLE 錯誤 600AIOracle
- expdp遠端匯出資料
- Oracle跨版本匯出EXP-00003錯誤的解決()Oracle
- expdp與impdp全庫匯出匯入(二)
- 記一次expdp匯出任務中某張大表報錯問題的解決過程
- 記錄一次根據錯誤資訊無法定位錯誤的錯誤
- 【ASK_ORACLE】一眼判斷出Oracle的dmp檔案是用expdp匯出還是exp匯出Oracle
- MongoDB的一次錯誤記錄MongoDB
- exp/imp出現錯誤通過expdp/impdp來解決
- ORACLE匯入遇到ORACLE錯誤959解決方法Oracle
- 資料庫泵(expdp/impdp)匯入匯出流程資料庫
- expdp匯出表的部分資料
- expdp 使用QUERY 匯出部分資料。