夢幻之旅
DEBUG - 天道酬勤
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
::
671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
<
2008年4月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
公告
本博客中未注原創(chuàng)的文章均為轉(zhuǎn)載,對轉(zhuǎn)載內(nèi)容可能做了些修改和增加圖片注釋,如果侵犯了您的版權(quán),或沒有注明原作者,請諒解
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(21)
給我留言
查看公開留言
查看私人留言
隨筆分類
(644)
Android(10)
(rss)
ANT(4)
(rss)
C#(10)
(rss)
C/C++(16)
(rss)
CSS(3)
(rss)
DataBase(119)
(rss)
DB-DailyMmaintenance(16)
(rss)
Design Patterns(27)
(rss)
english
(rss)
Exceptions(7)
(rss)
EXT(39)
(rss)
FLASH(9)
(rss)
Hardware(20)
(rss)
Hibernate(13)
(rss)
Html(23)
(rss)
Java(143)
(rss)
java Net(10)
(rss)
JavaScript(39)
(rss)
Linux(26)
(rss)
php(5)
(rss)
Regular Exp(3)
(rss)
Spring(17)
(rss)
Struts(12)
(rss)
TOOL(43)
(rss)
VB/VBA/VBS(5)
(rss)
webservice(9)
(rss)
XML(2)
(rss)
我的夢幻旅途(14)
(rss)
隨筆檔案
(669)
2017年9月 (4)
2016年10月 (1)
2015年6月 (1)
2015年4月 (2)
2015年1月 (1)
2014年8月 (2)
2014年7月 (9)
2014年6月 (1)
2014年5月 (2)
2014年4月 (3)
2014年3月 (3)
2013年10月 (4)
2013年9月 (8)
2013年8月 (4)
2013年6月 (3)
2013年5月 (4)
2013年4月 (7)
2013年3月 (1)
2013年1月 (3)
2012年12月 (4)
2012年11月 (1)
2012年10月 (1)
2012年9月 (4)
2012年8月 (1)
2012年7月 (2)
2012年6月 (1)
2012年5月 (4)
2012年4月 (2)
2012年3月 (1)
2012年2月 (4)
2012年1月 (6)
2011年12月 (10)
2011年11月 (7)
2011年10月 (6)
2011年9月 (37)
2011年8月 (34)
2011年7月 (44)
2011年6月 (10)
2011年5月 (5)
2011年4月 (3)
2011年3月 (1)
2011年2月 (1)
2011年1月 (18)
2010年12月 (9)
2010年11月 (13)
2010年10月 (17)
2010年9月 (2)
2010年8月 (10)
2010年7月 (10)
2010年6月 (5)
2010年5月 (8)
2010年4月 (9)
2010年3月 (11)
2010年2月 (3)
2010年1月 (8)
2009年12月 (6)
2009年11月 (10)
2009年10月 (5)
2009年9月 (1)
2009年8月 (18)
2009年7月 (6)
2009年6月 (2)
2009年5月 (1)
2009年4月 (4)
2009年3月 (6)
2009年2月 (5)
2009年1月 (3)
2008年12月 (13)
2008年11月 (13)
2008年10月 (30)
2008年9月 (9)
2008年8月 (24)
2008年7月 (17)
2008年6月 (15)
2008年5月 (16)
2008年4月 (15)
2008年3月 (19)
2008年2月 (3)
2008年1月 (20)
2007年12月 (24)
2007年11月 (9)
文章檔案
(6)
2008年4月 (1)
2008年3月 (1)
2008年1月 (2)
2007年11月 (2)
最新隨筆
1.?PP代碼生成器(四) 使用解決方案生成代碼
2.? PP代碼生成器(三) 設(shè)計freemarker模板, 創(chuàng)建解決方案
3.? PP代碼生成器(二) 解決方案, 生成任務(wù), 輔助設(shè)計面板
4.? PP代碼生成器(一) 簡介, 下載, 運行
5.?PP持久層代碼生成器
6.?比較好的博客
7.?系統(tǒng)集成項目管理工程師
8.?軟件公司項目經(jīng)理崗位職責(zé)
9.?聯(lián)想筆記本 顯示屏 鍵盤失靈 釋放靜電
10.?eclipse maven
積分與排名
積分 - 958986
排名 - 37
最新評論
1.?re: Myeclipse 快捷鍵大全(絕對全)
crl+向右箭頭(輸入法有問題打不出來)移到下一個參數(shù)的位置,然后crl+shift+向右箭頭 選中該位置的參數(shù)即可
--紅領(lǐng)巾
2.?re: Log4j基本使用方法
555
--555
3.?re: Myeclipse 快捷鍵大全(絕對全)[未登錄]
很不錯,謝謝
--銀狐
4.?re: Flex 表單
是誰這么無聊~嗚~~~
--HUIKK
5.?re: Spring AfterReturning 異常
具體是什么意思啊
--dingli
閱讀排行榜
1.?Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream(70028)
2.?log4j.properties 使用說明(42078)
3.?Myeclipse 快捷鍵大全(絕對全)(32724)
4.?TNSNAMES.ORA 配置(24392)
5.?oracle 樹狀查詢(21359)
評論排行榜
1.?Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream(53)
2.?JMail 異常: java.lang.NoClassDefFoundError: javax/activation/DataSource(21)
3.?javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first(14)
4.?java 讀取 excel 2003 或 excel 2007(14)
5.?java.lang.UnsupportedClassVersionError: Bad version number in .class file(8)
Oracle 定時任務(wù) JOB
眾所周知,一般操作系統(tǒng)會提供定時執(zhí)行任務(wù)的方法,例如:Unix平臺上提供了讓系統(tǒng)定時執(zhí)行任務(wù)的命令Crontab。但是,對于某些需求,例如:一些對數(shù)據(jù)庫表的操作,最為典型的是證券交易所每日收盤后的結(jié)算,它涉及大量的數(shù)據(jù)庫表操作,如果仍然利用操作系統(tǒng)去定時執(zhí)行,不僅需要大量的編程工作,而且還會出現(xiàn)用戶不一致等運行錯誤,甚至導(dǎo)致程序無法執(zhí)行。
一、分析問題
事實上,對于以上需求,我們可以利用數(shù)據(jù)庫本身擁有的功能Job Queue(任務(wù)隊列管理器)去實現(xiàn)。任務(wù)隊列管理器允許用戶提前調(diào)度和安排某一任務(wù),使其能在指定的時間點或時間段內(nèi)自動執(zhí)行一次或多次,由于任務(wù)在數(shù)據(jù)庫中被執(zhí)行,所以執(zhí)行效率很高。
任務(wù)隊列管理器允許我們定制任務(wù)的執(zhí)行時間,并提供了靈活的處理方式,還可以通過配置,安排任務(wù)在系統(tǒng)用戶訪問量少的時段內(nèi)執(zhí)行,極大地提高了工作效率。例如,對于數(shù)據(jù)庫日常的備份、更新、刪除和復(fù)制等耗時長、重復(fù)性強的工作,我們就可以利用任務(wù)隊列管理器去自動執(zhí)行以減少工作量。
目前,擁有此項功能的數(shù)據(jù)庫有許多,最有代表性的是SQL Server 7.0、Oracle 8.0.5等。但是,要讓任務(wù)隊列管理器工作,還需要我們加以配置才能實現(xiàn)。SQL Server的功能配置是在一個圖形化界面(GUI)中實現(xiàn)的,非常簡單。利用OEM客戶端管理工具,Oracle的配置也可以在一個圖形界面中完成。然而大多數(shù)的用戶更習(xí)慣于命令行的方式去操縱數(shù)據(jù)庫。本文介紹如何通過命令行實現(xiàn)這種配置。
二、實現(xiàn)步驟
1.確保Oracle的工作模式允許啟動任務(wù)隊列管理器
Oracle定時執(zhí)行“Job Queue”的后臺程序是SNP進(jìn)程,而要啟動SNP進(jìn)程,首先要確保整個系統(tǒng)的模式是可以啟動SNP進(jìn)程的,這需要以DBA的身份去執(zhí)行如下命令:
svrmgrl> alter system enable restricted session;
或sql> alter system disenable restricted session;
利用如上命令更改系統(tǒng)的會話方式為disenable restricted,為SNP的啟動創(chuàng)造條件。
2.確保Oracle的系統(tǒng)已經(jīng)配置了任務(wù)隊列管理器的啟動參數(shù)
SNP的啟動參數(shù)位于Oracle的初始化文件中,該文件放在$ORACLE_HOME/dbs路徑下,如果Oracle的SID是myora8的話,則初始化文件就是initmyora8.ora,在文件中對SNP啟動參數(shù)的描述部分如下:
job_queue_process=n
job_queue_interval=N
第一行定義SNP進(jìn)程的啟動個數(shù)為n。系統(tǒng)缺省值為0,正常定義范圍為0~36,根據(jù)任務(wù)的多少,可以配置不同的數(shù)值。
第二行定義系統(tǒng)每隔N秒喚醒該進(jìn)程一次。系統(tǒng)缺省值為60秒,正常范圍為1~3600秒。事實上,該進(jìn)程執(zhí)行完當(dāng)前任務(wù)后,就進(jìn)入睡眠狀態(tài),睡眠一段時間后,由系統(tǒng)的總控負(fù)責(zé)將其喚醒。
如果該文件中沒有上面兩行,請按照如上配置添加。配置完成后,需要重新啟動數(shù)據(jù)庫,使其生效。注意:如果任務(wù)要求執(zhí)行的間隔很短的話,N的配置也要相應(yīng)地小一點。
3.將任務(wù)加入到數(shù)據(jù)庫的任務(wù)隊列中
調(diào)用Oracle的dbms_job包中的存儲過程,將任務(wù)加入到任務(wù)隊列中:
dbms_job.submit( job out binary_integer,
what in archar2,
next_date in date,
interval in varchar2,
no_parse in boolean)
其中:
●job:輸出變量,是此任務(wù)在任務(wù)隊列中的編號;
●what:執(zhí)行的任務(wù)的名稱及其輸入?yún)?shù);
●next_date:任務(wù)執(zhí)行的時間;
●interval:任務(wù)執(zhí)行的時間間隔。
下面詳細(xì)討論一下dbms_job.submit中的參數(shù)interval。嚴(yán)格地講,interval是指上一次執(zhí)行結(jié)束到下一次開始執(zhí)行的時間間隔,當(dāng)interval設(shè)置為null時,該job執(zhí)行結(jié)束后,就被從隊列中刪除。假如我們需要該job周期性地執(zhí)行,則要用‘sysdate+m’表示。
將任務(wù)加入到任務(wù)隊列之前,要確定執(zhí)行任務(wù)的數(shù)據(jù)庫用戶,若用戶是scott, 則需要確保該用戶擁有執(zhí)行包dbms_job的權(quán)限;若沒有,需要以DBA的身份將權(quán)利授予scott用戶:
svrmgrl> grant execute on dbms_job to scott;
4.將要執(zhí)行的任務(wù)寫成存儲過程或其他的數(shù)據(jù)庫可執(zhí)行的pl/sql程序段
例如,我們已經(jīng)建立了一個存儲過程,其名稱為my_job,在sql/plus中以scott用戶身份登錄,執(zhí)行如下命令:
sql> variable n number;
sql> begin
dbms_job.submit(:n‘my_job;’,sysdate,
‘sysdate+1/360’);
commit;
end;
/
系統(tǒng)提示執(zhí)行成功。
Sql> print :n;
系統(tǒng)打印此任務(wù)的編號,例如結(jié)果為300。
如上,我們創(chuàng)建了一個每隔4分鐘執(zhí)行一次的任務(wù)號為300的任務(wù)。可以通過Oracle提供的數(shù)據(jù)字典user_jobs察看該任務(wù)的執(zhí)行情況:
sql> select job,next_date,next_sec,failures,broken from user_jobs;
執(zhí)行結(jié)果如下:
job next_date next_sec failures broken
300 2000/10/10 11:45:15 0 N
這表示任務(wù)號為300的任務(wù),下一次將在2000/10/10 11:45:15執(zhí)行,此任務(wù)的執(zhí)行失敗記錄為0次。注意:當(dāng)執(zhí)行job出現(xiàn)錯誤時,Oracle將其記錄在日志里,失敗次數(shù)每次自動加1。當(dāng)執(zhí)行失敗次數(shù)達(dá)到16時,Oracle就將該job標(biāo)志為broken。此后,Oracle不再繼續(xù)執(zhí)行它,直到用戶調(diào)用過程dbms_job.broken,重新設(shè)置為not broken,或強制調(diào)用dbms_job.run來重新執(zhí)行它。
除了以上我們討論的submit存儲過程之外,Oracle還提供了其他許多存儲過程來操作任務(wù)。例如:dbms_job.change 、 dbms_job.what、dbms_job.interval可以用來修改提交的任務(wù)。要想刪除該任務(wù),只需運行dbms_job.remove(n)即可,其中n為任務(wù)號。
posted on 2008-04-02 17:00
HUIKK
閱讀(450)
評論(0)
編輯
收藏
所屬分類:
DataBase
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
Oracle Data Guard Linux 平臺 Physical Standby 搭建實例()
oracle 批量更新
PL/SQL中SELECT INTO無記錄的情況
windows環(huán)境下Oracle數(shù)據(jù)庫冷備份和恢復(fù)全過程
oracle10g數(shù)據(jù)庫冷備份、恢復(fù)的具體步驟(轉(zhuǎn))
oracle 正則 匹配中文
PowerDesigner設(shè)置
SQLPLUS SPOOL命令使用
Oracle執(zhí)行SQL時遭遇特殊字符&
oracle及操作系統(tǒng)對于文件大小的限制
Powered by:
BlogJava
Copyright © HUIKK
主站蜘蛛池模板:
国产老女人精品免费视频
|
亚洲国产精品高清久久久
|
caoporn成人免费公开
|
亚洲日本中文字幕区
|
精品国产免费一区二区
|
中文字幕一区二区免费
|
国产精品高清视亚洲精品
|
亚洲国产主播精品极品网红
|
久久九九AV免费精品
|
亚洲精品无码一区二区
|
亚洲国产成人精品无码区在线观看
|
在线观看免费人成视频色9
|
国产一级黄片儿免费看
|
精品国产成人亚洲午夜福利
|
成人午夜亚洲精品无码网站
|
大学生一级毛片免费看
|
baoyu122.永久免费视频
|
亚洲国产精品无码观看久久
|
久久精品视频亚洲
|
亚洲第一永久AV网站久久精品男人的天堂AV
|
无码少妇精品一区二区免费动态
|
国产精品亚洲专区一区
|
亚洲妓女综合网99
|
久久精品国产亚洲夜色AV网站
|
国产成人在线免费观看
|
美女被cao免费看在线看网站
|
selaoban在线视频免费精品
|
亚洲日韩AV一区二区三区四区
|
亚洲av无码一区二区三区不卡
|
免费无遮挡无码永久在线观看视频
|
18成禁人视频免费网站
|
91视频精品全国免费观看
|
精品国产亚洲一区二区三区在线观看
|
午夜时刻免费入口
|
一级做a爰片性色毛片免费网站
|
日产亚洲一区二区三区
|
亚洲免费一区二区
|
四虎国产精品免费视
|
一个人免费观看视频www
|
免费人妻无码不卡中文字幕系
|
a一级毛片免费高清在线
|