中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle數據庫JOB失敗怎么解決

發布時間:2022-01-17 16:55:30 來源:億速云 閱讀:257 作者:iii 欄目:關系型數據庫

今天小編給大家分享一下Oracle數據庫JOB失敗怎么解決的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

數據庫版本:11.2.0.3

測試說明:這里創建了一個日志表以及一個運行時必定出錯的procedure,用于job的運行。這里只要記錄下每次job執行時視圖user_jobs 中的 next_date就可以推斷出job 執行失敗后的重試規律。

為了測試job的重試規律我做了如下工作

日志表以及序列:

  1. create table job_exec_logs (id number ,current_date date , next_date date ,failures number ,broken varchar2( 2)) ;  

  2.   

  3. create sequence seq_job_exec_logs_id ;  

測試procedure

  1. create or replace procedure pro_my_test is  

  2. begin  

  3.   insert into job_exec_logs select  

  4. seq_job_exec_logs_id.nextval , sysdate , next_date , failures , broken from user_jobs ;  

  5.   commit ;  

  6.   execute immediate 'select * from ddddsfs' ;  

  7. end ;  

其中ddddsfs表示不存在的,也就是說只要運行pro_my_test存儲過程到最后都會出錯(但是日志表還是可以正常插入進去的)

創建job:

  1. var job number ;  

  2. begin  

  3.   sys.dbms_job.submit(job => :job,  

  4.                       what => 'pro_my_test ;',  

  5.                       next_date => sysdate,  

  6.                       interval => 'sysdate+5' );  

  7.   commit;  

  8. end;  

  9. /  

其實整個測試過程沒什么可說的,讓job自動運行即可,但是需要等待job下次重試時間。

最后測試的結果:

  1. dexter@REPO>select trunc((next_date-lag(next_date,1) over (order by 4))*24*60) from (  

  2.   2  select * from job_exec_logs  

  3.   3  union all  

  4.   4  select 11111, sysdate , next_date ,failures , broken from user_jobs  

  5.   5  order by 4 nulls first) ;  

  6.   

  7. TRUNC((NEXT_DATE-LAG(NEXT_DATE,1)OVER(ORDER BY 4))*24*60)  

  8. -------------------------------------------------------  

  9.   

  10.                                                       2  

  11.                                                       4  

  12.                                                       8  

  13.                                                      15  

  14.                                                      32  

  15.                                                      64  

  16.                                                     128  

  17.                                                     256  

  18.                                                     512  

  19.                                                    1024  

  20.                                                    1440  

  21.                                                    1440  

  22.   

  23. 已選擇13行。  

如上結果以及筆者的其他測試可以判斷出:

1、每次重試時間都是遞增的,第一次2分鐘,4分鐘,8分鐘,16分鐘 ... 依此類推。

2、當超過1440分鐘,也就是24小時的時候,固定的重試時間為1天。

3、筆者還經過其他實驗得知,超過16次重試后,job 就會被標記為broken ,next_date 為4000-1-1,也就是不再進行job重試。

4、oracle數據庫重試的時間到達設定的下次執行時間后,以設定的job執行時間為準。

以上就是“Oracle數據庫JOB失敗怎么解決”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北京市| 托克逊县| 连云港市| 酒泉市| 金坛市| 崇州市| 嘉黎县| 乌鲁木齐县| 大理市| 麻栗坡县| 武定县| 会东县| 忻城县| 江永县| 永和县| 贞丰县| 青浦区| 盈江县| 长兴县| 建水县| 平谷区| 通化县| 高青县| 砚山县| 云林县| 清徐县| 青阳县| 若尔盖县| 大理市| 麻栗坡县| 沙湾县| 达日县| 定兴县| 迭部县| 巧家县| 衡东县| 寿光市| 黄山市| 察哈| 云梦县| 涿鹿县|