Oracle-Linux
Oracle 數據庫模式導出
我正在嘗試通過
expdep
在 oracle 數據庫上執行模式導出:expdp somedatabase/something directory=EXP_DIR schemas=someschema dumpfile=dumpfile.dmp logfile=logfile.log
上面的命令(儘管為了發布這個問題而進行了編輯)之前一直在工作,但現在我收到了這個錯誤:
ORA-31626: job does not exist ORA-31633: unable to create master table "SOMEDATABASE.SYS_EXPORT_SCHEMA_09" ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95 ORA-06512: at "SYS.KUPV$FT", line 1161 ORA-01658: unable to create INITIAL extent for segment in tablespace USERS ORA-06512: at "SYS.KUPV$FT", line 1054 ORA-06512: at "SYS.KUPV$FT", line 1042
我有理由相信,根本原因是存在與早期數據泵相關的停滯作業,這些作業被半中止 (ctrl+c) 並刪除了目標文件。
如何清除這些作業,以便我可以從頭開始重新啟動數據泵?
從外觀上看,我在 Centos 上執行的是 12.2.0.1 版本。
我設法找到了一個隱藏在Google搜尋結果深處的解決方案。這對我有用:
第 1 步:查找停滯的工作:
SELECT o.status, o.object_id, o.object_type, o.owner||'.'||object_name "OWNER.OBJECT" FROM dba_objects o, dba_datapump_jobs j WHERE o.owner=j.owner_name AND o.object_name=j.job_name AND j.job_name NOT LIKE 'BIN$%' ORDER BY 4,2;
第 2 步,刪除它們:
drop table TABLENAME_RETURNED_IN_STEP_1;
在此之後,我能夠像以前一樣進行導出。