回話?啥意思?你是說(shuō)看不到j(luò)ob的運(yùn)行反饋么。job的運(yùn)行反饋可以去,user_jobs_running,這個(gè)能查到正在執(zhí)行的job,user_jobs能查看job的運(yùn)行結(jié)果和下次運(yùn)行時(shí)間等。至于你說(shuō)的反饋,就好像你用pl/sql
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的興國(guó)網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
developer
調(diào)試一個(gè)過(guò)程一樣,他不會(huì)在session中直接反饋,而是會(huì)出現(xiàn)在調(diào)試的最下方,在sqlplus的session中,是看不到的。
select * from v$access a where object like '存儲(chǔ)過(guò)程名%' --存儲(chǔ)過(guò)程名為大寫(xiě)字母
select * from v$session where sid=74 --74為上一個(gè)查詢得到的SID值,可能是多個(gè),這里找到他們對(duì)應(yīng)的serial#值
alter system kill session '74,118' --參數(shù)為'sid,serial#',用于停止這個(gè)回話,同時(shí)也終止了存儲(chǔ)過(guò)程
在windows里啟動(dòng)Oracle有兩個(gè)步驟,一是先啟動(dòng)服務(wù),二是再啟動(dòng)實(shí)例、數(shù)據(jù)庫(kù),這兩個(gè)都可以設(shè)置成自動(dòng)或者手動(dòng)
針對(duì)數(shù)據(jù)庫(kù)開(kāi)機(jī)自動(dòng)啟動(dòng)問(wèn)題,解決方法有兩個(gè)
方法一:在服務(wù)把oracleservice%SID%這個(gè)服務(wù)改成手動(dòng)啟動(dòng)
方法二:修改注冊(cè)表HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOME0\ORA_%SID%_AUTOSTART的值為false,這個(gè)是控制啟動(dòng)服務(wù)時(shí)是否自動(dòng)啟動(dòng)數(shù)據(jù)庫(kù)(實(shí)例,占內(nèi)存),默認(rèn)是true
注冊(cè)表還有個(gè)ORA_%SID%_shutdown它是控制你關(guān)機(jī)時(shí)是否自動(dòng)關(guān)數(shù)據(jù)庫(kù)的
啟動(dòng)服務(wù)可以用net start oracleservice%SID% 命令
停止服務(wù)可以用net start oracleservice%SID% 命令
手動(dòng)啟動(dòng)數(shù)據(jù)庫(kù)要先開(kāi)始服務(wù),不然sqlplus不能進(jìn)行操作系統(tǒng)驗(yàn)證了
進(jìn)入sqlplus “/as sysdba"
啟動(dòng)數(shù)據(jù)庫(kù)是在sqlplus里輸入startup
關(guān)閉數(shù)據(jù)庫(kù)是在sqlplus里輸入shutdown immediate
job一旦運(yùn)行是無(wú)法停止的(除非斷電、停止數(shù)據(jù)庫(kù)),但是使用 update uesr_jobs set broken = 'Y' where job = '你的job編號(hào)',broken后,job就無(wú)法啟動(dòng)了。要啟動(dòng)的話,得修改broken和next_date 參數(shù)。
找出正在執(zhí)行的JOB 編號(hào)及其會(huì)話編號(hào) SELECT SID,JOB FROM DBA_JOBS_RUNNING; 停止該JOB 的執(zhí)行 SELECT SID,SERIAL# FROM V$SESSION WHERE SID='SID'; ALTER SYSTEM KILL SESSION 'SID,SERIAL'; EXEC DBMS_JOB.BROKEN(JOB,TRUE); 實(shí)例分析: 1,查詢正在運(yùn)行的Job,通過(guò)查詢有兩個(gè),和進(jìn)程占用較多的是兩個(gè)ORACLE 進(jìn)程符合。 SQL SELECT SID,JOB FROM DBA_JOBS_RUNNING; SID JOB ---------- ---------- 12 116 16 117 2,查詢正在運(yùn)行的job 的信息 SQL SELECT SID,SERIAL# FROM V$SESSION WHERE SID='12'; SID SERIAL# ---------- ---------- 12 4 SQL SELECT SID,SERIAL# FROM V$SESSION WHERE SID='16'; SID SERIAL# ---------- ---------- 16 1 3,利用查詢出來(lái)的job 信息將job 結(jié)束掉 SQL ALTER SYSTEM KILL SESSION '12,4'; System altered. SQL ALTER SYSTEM KILL SESSION '16,1'; System altered. 4,如果不希望運(yùn)行上述job 的話,可以將job 設(shè)置為broken. EXEC DBMS_JOB.BROKEN(116,TRUE); EXEC DBMS_JOB.BROKEN(117,TRUE);
JOB未執(zhí)行成功,重試規(guī)律是這樣的:
1、每次重試時(shí)間都是遞增的,第一次2分鐘,4分鐘,8分鐘,16分鐘 ... 依此類推。
2、當(dāng)超過(guò)1440分鐘,也就是24小時(shí)的時(shí)候,固定的重試時(shí)間為1天。
3、筆者還經(jīng)過(guò)其他實(shí)驗(yàn)得知,超過(guò)16次重試后,job 就會(huì)被標(biāo)記為broken ,next_date 為4000-1-1,也就是不再進(jìn)行job重試。
4、oracle數(shù)據(jù)庫(kù)重試的時(shí)間到達(dá)設(shè)定的下次執(zhí)行時(shí)間后,以設(shè)定的job執(zhí)行時(shí)間為準(zhǔn)。
如果答非所問(wèn),請(qǐng)完善問(wèn)題。