我們正在使用在DBMS_JOB之上運行的作業調度系統。它使用主作業來創建一次性作業。我們爲所有客戶部署相同的作業集,但可以指定哪些作業只應在特定客戶端上運行。殺死Oracle作業。 10g特定
我們偶爾遇到掛起作業時運行的進程問題。造成這種情況的主要原因是UTL_TCP在得到預期響應時沒有超時。我希望能夠殺死這些工作,以便他們能夠再次運行。
我正在尋找創造一個新的工作,殺死任何這些一直運行超過一定時間的一次性工作。
我們被Oracle 10g困住了一段時間,所以我受限於能夠做什麼。
有,似乎涵蓋了大部分的這種在
http://it.toolbox.com/blogs/database-solutions/killing-the-oracle-dbms_job-6498
我有一種感覺,這是不打算覆蓋所有的可能性,包括文章:
- 我們運行可以作爲幾個不同的用戶和一個用戶只能打破/刪除他們創建的作業。我相信我可以使用DBMS_IJOB來解決這個問題,但我需要讓DBA來執行它。
- 我們擁有Oracle RAC系統。我知道10g限制ALTER SYSTEM KILL SESSION在當前實例上查殺會話。我可以安排所有工作在同一個實例上運行,但我還沒有嘗試過。
還有什麼我應該考慮的?堆棧溢出需要一個明確的答案。
您的陳述「但我需要讓DBA讓我執行它」聽起來好像您沒有將問題與您的DBA一起解決?在DBA類別中,這是一個強烈的問題,我(作爲DBA發言)會建議您在對程序化解決方案進行過於嚴格的工作之前直接與您的DBA打交道。 – Rob 2009-10-06 14:45:10
我已經提出了Rob的評論,並補充說我會調查設置資源限制來處理這種情況。根據我的經驗,如鏈接文章所述,有時您需要主機操作系統訪問權限和權限來殺死運行作業的ora_qnnn進程,以有效地終止作業,因此您可能無法完全停止數據庫程序。 – dpbradley 2009-10-06 15:28:17
+1 @rob。在我看來,這是對 +1 @dpbradley提出操作系統方面活動的可能性的建設性答案 – 2009-10-06 20:08:46