oracle定時任務失效

2022-07-18 16:06:36 字數 678 閱讀 6606

發現系統資料沒有更新,檢視oracle定時任務,估計沒有執行。

發現next_date變成了4000/1/1 ,broken被選中。

select * from user_jobs發現該任務失敗次數達16次。

查得如下原因:

當任務執行失敗時,snp過程在1分鐘後將再次試圖執行該任務。如果這次執行又失敗了,下一次嘗試將在2分鐘後進行,再下一次在4分鐘以後。任務佇列每次 加倍重試間隔直到  它超過了正常的執行間隔。在連續16次失敗後,任務就被標記為中斷的(broken),如果沒有使用者干預,任務佇列將不再重複執行。

當將乙個任務的next_date引數賦值為null時,則該任務下一次執行的時間將被指定為2023年1月1 日,也就是說該任務將永遠不再執行。在大多數情況下,這可能是我們不願意  看到的情形。但是,換乙個角度來考慮,如果想在任務佇列中保留該任務而又不想讓其 執行,將next_date設定為null卻是乙個非常簡單的辦法。

手動test該定時任務,發現了報錯原因,是插入ipv6的ip失敗,將其刪除。將定時任務恢復,重新執行,執行成功則失敗次數將重置0.

將任務停掉的方法:

dbms_job.broken(v_job,true,next_date);        //停止乙個job,v_job可寫job號,裡面引數true也可是false,next_date(某一時刻停止)也可是sysdate(立刻停止)。

oracle 定時任務

在pl sql 中執行命名 第一步 開啟乙個sql window 視窗,建立一張測試表 create table test date a date 第二步 建立儲存過程 create or replace procedure test myproc asbegininsert into test d...

oracle定時任務

1.建立儲存過程 create orreplace procedure proc test isbegin insert into test values 1 2 commit end prc job test 2.建立任務 declare job number begin sys.dbms job...

Oracle定時任務

建立表 create table test carno varchar2 30 carinfoid number 建立儲存過程 create or replace procedure pro test ascarinfo id number begin select s carinfoid.next...