關於Oracle的任務進程提交後不執行原因

來源:互聯網
上載者:User

關於Oracle的任務進程提交後不執行原因

/* 以下命令在 SQL*Plus 中運行 */
--任務不執行時檢查步驟
--1. 檢查執行個體會話是否受限制
select instance_name,logins from v$instance;
--  若提示 logins=RESTRICTED 則執行
alter system disable restricted session;
--2. 確保 job_queue_processes > 0
show parameter job_queue_processes;
--3. 檢查任務是否依然在運行
select * from dba_jobs_running;

我遇到的問題是因為之前提交的任務仍然在運行,因此重新提交相同任務時不執行。Oracle設定的同時執行任務進程數有限,所以在上一次提交的任務未執行完畢時,再次提交的任務只能在隊列中等待,不會直接執行。

我寫了個視圖,可以方便的查詢當前執行的任務

--查詢正在啟動並執行任務
/* 需要在sys登入下授予使用者權限
grant select on dba_jobs_running to a2admin;
grant select on v_$session to a2admin;
*/
create or replace view job_run_view
as
select a.job,a.sid,b.SERIAL#,a.failures,a.last_date,a.this_date,a.instance from dba_jobs_running a,v$session b where a.sid=b.sid order by 1;

若需要關閉任務進程,執行以下代碼,相應替換掉sid和serial#

--關閉進程sid,serial#,替換為相應值
--alter system kill session 'sid,serial';

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.