Oracle使用DBMS_JOB建立的資料庫作業,遇到資料庫關閉狀態的排程
對SQL Server熟悉的朋友,應該都知道,SQL Server的作業是按照固定時刻來設定排程的,比如設定為每日23:00執行,如果此時,恰逢伺服器關機,或者SQLServerAgent服務不在執行,則本次作業將不會執行,直到下次滿足排程條件再執行.
而Oracle的JOB是按照排程公式來設定下次執行時刻的.讓我們來測試一下Oracle的JOB遇到關機或者資料庫關閉的情況吧.
----建立表:
create table bak_testJob(runtime date);
----建立儲存過程:
create or replace procedure bak_testJob_Proc
is
begin
insert into bak_testJob values(sysdate);
end ;
----呼叫儲存過程測試:
begin
bak_testJob_Proc;
end ;
----測試成功(select 有結果),清空表:
delete from bak_testJob;
----建立作業(PL/SQL Developer互動介面建立)下面是相關操作對應的"View SQL"的結果:
begin
sys.dbms_job.submit(job => :job,
what => 'bak_testJob_Proc;',
next_date => to_date('10-10-2011 19:15:00', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'sysdate+5/1440');
commit;
end;
/
----建立的JobID是101
----此時:19:09:45
19:10:00 停服務,模擬關機
19:19:35 開服務(僅啟動主服務,監聽服務,Agent服務,此處說明一下,Oracle9i一定要開啟Agent服務,而Oracle10g則可以不啟動OracleJobSchedule服務)
select * from bak_testJob;
結果:2011-10-10 19:19:38
看101作業:
Last date:2011-10-10 19:19:35
Next date:2011-10-10 19:24:37
----刪除Job(PL/SQL Developer互動介面進行刪除,語句略)
----刪除procedure和table
drop procedure bak_testJob_Proc
select * from bak_testjob
1 2011-10-10 19:24:39
2 2011-10-10 19:19:38
drop table bak_testJob
----結論:Oracle會在資料庫啟動後,馬上將應該排程的Job補充執行,此後按間隔公式定時排程
看來,與SQL Server跳過了本次作業排程不同,Oracle會記得補上.
另外,說明一點,作業是使用的dbms_job來建立的,不是使用Oracle10g新的dbms_schedule來建立的,所以,與OracleJobSchedule$SID服務的狀況是無關的.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29512902/viewspace-1176323/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle資料庫的關閉過程Oracle資料庫
- 啟動、關閉與資料庫的特殊狀態資料庫
- oracle資料庫狀態Oracle資料庫
- Oracle XE的資料庫建立過程Oracle資料庫
- 手工建立oracle資料庫的過程Oracle資料庫
- oracle例項、資料庫及相關資料庫狀態的理解和測試Oracle資料庫
- 安全關閉Oracle資料庫Oracle資料庫
- oracle資料庫正常關閉狀態下丟失undo檔案的恢復Oracle資料庫
- oracle資料庫的靜默(Quiesce)狀態Oracle資料庫UI
- openguass 3.1.0 資料庫啟動,關閉,狀態檢查資料庫
- oracle資料庫的啟動與關閉過程詳解Oracle資料庫
- oracle資料庫例項狀態Oracle資料庫
- Oracle資料庫的啟動與關閉Oracle資料庫
- Oracle資料庫的啟動和關閉Oracle資料庫
- Oracle 資料庫例項啟動關閉過程Oracle資料庫
- Oracle資料庫的靜默狀態和掛起狀態Oracle資料庫
- Oracle資料庫檢視使用者狀態Oracle資料庫
- 資料庫關閉資料庫
- Oracle 資料庫的各種狀態和模式Oracle資料庫模式
- Oracle資料庫啟動過程及狀態詳解Oracle資料庫
- Oracle資料庫中遇到的坑Oracle資料庫
- 【YashanDB資料庫】yasboot查詢資料庫狀態時顯示資料庫狀態為off資料庫boot
- Oracle DG資料庫狀態轉換Oracle資料庫
- ORACLE資料庫的啟動和關閉(轉)Oracle資料庫
- standby 資料庫的建立過程資料庫
- 例項,資料庫,資料字典與資料庫建立的關係資料庫
- 資料庫課程作業筆記資料庫筆記
- 關閉資料庫遇到SHUTDOWN: Active processes prevent shutdown operation資料庫
- 系統關閉時候,oracle資料庫執行動作Oracle資料庫
- 資料庫啟動的不同狀態資料庫
- 檢視映象資料庫的狀態資料庫
- 3.3.3 使用immiedit模式關閉資料庫模式資料庫
- 隨系統啟動關閉的oracle資料庫Oracle資料庫
- Oracle學習系列—Window作業系統下Oracle資料庫的手工建立Oracle作業系統資料庫
- 關係型資料庫:使用正規化建立資料庫(轉)資料庫
- 在 Laravel 的資料庫模型中使用狀態模式Laravel資料庫模型模式
- 建立最優的oracle資料庫Oracle資料庫
- 指令碼建立Oracle的資料庫指令碼Oracle資料庫