首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

Oracle expdp 任務被 Ctrl+C 中斷後,如何徹底查詢與終止後台 Job

     編輯:DB2 教學

現象

執行 expdp 導出時發現參數遺漏,按 Ctrl+C 中斷,但後台 Job 實際仍在運行,佔用資源且無法重新啟動同名任務。

排查步驟

1. 查詢正在運行的 Data Pump Job

SELECT * FROM DBA_DATAPUMP_JOBS;
SELECT * FROM DBA_DATAPUMP_SESSIONS;

輸出示例:

OWNER_NAME  JOB_NAME              INST_ID SADDR             SESSION_TYPE
SYSTEM      SYS_EXPORT_SCHEMA_01  1       000000097472AE68  MASTER
SYSTEM      SYS_EXPORT_SCHEMA_01  1       000000095079A4E8  WORKER

2. 附著到 Job 互動介面並終止

expdp system/password attach=SYS_EXPORT_SCHEMA_01
Export> kill_job
Are you sure you wish to stop this job ([yes]/no): yes

關鍵點提醒

  • Ctrl+C 僅中斷客戶端連線,**不會** 停止伺服器端 Job。
  • 必須透過 DBA_DATAPUMP_JOBS/SESSIONS 確認 Job Name,再用 attach 進入互動模式執行 kill_job。
  • 若有多個並行 Worker,kill_job 會協調所有 Worker 乾淨退出並清理暫存檔。

一鍵腳本(參考)

#!/bin/bash
# 列出所有運行中 expdp/impdp job 並提示殺掉
sqlplus -s / as sysdba <

總結

誤中斷 expdp 後,**查視圖 → 確認 Job Name → attach → kill_job** 三步走,徹底釋放資源,避免殭屍 Job 干擾後續操作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved