您好,登錄后才能下訂單哦!
真題1、如何徹底停止expdp進程?
答案:許多同事在使用expdp命令時,不小心按了CTRL+C組合鍵,然后又輸入exit命令(或者網絡中斷等異常情況),導致expdp進程不存在,但Oracle數據庫的會話仍存在,所以dmp文件也一直在增長。在這種情況下的處理辦法如下所示:
1、檢查expdp進程是否還在
ps -ef | grep expdp
若存在,則可用“kill -9 process”命令殺掉expdp的進程。
2、檢查會話是否仍存在,若存在則把相關的會話殺掉(注意:先使用命令“ALTER SYSTEM KILL SESSION SID,SERIAL# IMMEDIATE;”在數據庫級別殺掉會話,然后在OS級別使用kill -9殺掉進程),如無殺會話的權限則可以將相關的表DROP掉,表名可以使用如下的SQL來查詢:
SELECT * FROM DBA_DATAPUMP_SESSIONS;
SELECT * FROM DBA_DATAPUMP_JOBS;
例如:
SYS@orclasm > SELECT * FROM DBA_DATAPUMP_SESSIONS;
OWNER_NAME JOB_NAME INST_ID SADDR SESSION_TYPE
---------- ------------------------- ---------- ---------------- --------------
LHR SYS_EXPORT_SCHEMA_04 1 00000000A8B71D98 MASTER
LHR SYS_EXPORT_SCHEMA_04 1 00000000AB98AFC8 WORKER
SYS@orclasm > DROP TABLE LHR.SYS_EXPORT_SCHEMA_04 PURGE;
Table dropped.
SYS@orclasm > SELECT * FROM DBA_DATAPUMP_SESSIONS;
no rows selected
SYS@orclasm > SELECT * FROM DBA_DATAPUMP_JOBS;
no rows selected
使用相同的辦法也刪除從視圖DBA_DATAPUMP_JOBS中查詢出來的表,直到這兩個視圖無記錄。
3、刪除導出的dmp文件。如不刪除,則在重新執行expdp命令時會報dmp文件已存在的錯誤。
這里作者給出自己常用的一個SQL語句,可以查詢expdp的相關會話的詳細信息,如下所示:
---------------------------如何徹底停止expdp進程?
SET LINE 9999
COL OWNER_NAME FOR A10
COL JOB_NAME FOR A25
COL OPERATION FOR A10
COL JOB_MODE FOR A10
COL STATE FOR A15
COL OSUSER FOR A10
COL "DEGREE|ATTACHED|DATAPUMP" FOR A25
COL SESSION_INFO FOR A20
SELECT DS.INST_ID,
DJ.OWNER_NAME,
DJ.JOB_NAME,
TRIM(DJ.OPERATION) OPERATION,
TRIM(DJ.JOB_MODE) JOB_MODE,
DJ.STATE,
DJ.DEGREE || ',' || DJ.ATTACHED_SESSIONS || ',' ||DJ.DATAPUMP_SESSIONS "DEGREE|ATTACHED|DATAPUMP",
DS.SESSION_TYPE,
S.OSUSER ,
(SELECT S.SID || ',' || S.SERIAL# || ',' || P.SPID
FROM GV$PROCESS P
WHERE S.PADDR = P.ADDR
AND S.INST_ID = P.INST_ID) SESSION_INFO
FROM DBA_DATAPUMP_JOBS DJ --GV$DATAPUMP_JOB
FULL OUTER JOIN DBA_DATAPUMP_SESSIONS DS --GV$DATAPUMP_SESSION
ON (DJ.JOB_NAME = DS.JOB_NAME AND DJ.OWNER_NAME = DS.OWNER_NAME)
LEFT OUTER JOIN GV$SESSION S
ON (S.SADDR = DS.SADDR AND DS.INST_ID = S.INST_ID)
ORDER BY DJ.OWNER_NAME, DJ.JOB_NAME;
select * from GV$DATAPUMP_SESSION;
select * from GV$datapump_jobs;
select * From dba_datapump_jobs;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。