oracle ora06576,创建oracle发邮件job导致的故障
前幾天創建了個發郵件的存儲過程,想把數據庫每天的運行情況自動發到郵箱,沒想到第二天就出了問題,在dbms/trace目錄下產生了大量的xxx_j000_xxx.trc文件,一分鐘產生2個。alter日志報ora-12012、ora-06576錯誤,出現sys.PROCESS_ETL2、dbms_scheduler、emd_maintenance.remove_em_dbms_jobs的內容。
--1.查詢job:
select * from dba_jobs t;
what =PROCESS_ETL2 的job=88,直接刪除88的job。
或 : SQL> EXEC dbms_job.remove(job#);? --移去job號
這個job已經刪除了,但是trace文件還是照樣產生。
--2. 刪除em的job:
SQL> exec emd_maintenance.remove_em_dbms_jobs;
trace文件還是照樣產生。
--3. 查詢PROCESS_ETL2的對象:
select * from sys.dba_objects t? ?where t.owner = 'SYS'?? and object_name = 'PROCESS_ETL2';
顯示狀態status=VALID, 類型object_type=job,timestamp 的值不斷的變化,看來這個job還是在執行,但是查dba_jobs 試圖已經看不到了。
--4. 必須刪除PROCESS_ETL2這個對象:
begin
dbms_scheduler.drop_job (
job_name??????? => 'process_etl2',
force?????????? => true);
end;
--5. 再次查詢PROCESS_ETL2的對象:
select * from sys.dba_objects t???where t.owner = 'SYS'?? and object_name = 'PROCESS_ETL2';
--已經沒有了,trace目錄下已經不產生相應文件了 。
--6. 總結:這個 Scheduler Email是11gr2的增強功能,在沒有充分了解這個之前還是不能隨便拿來使用的,可能會產生意想不到的結果。
--7. dbms_scheduler的create_job如下:
--建job:
begin
dbms_scheduler.create_job (
job_name??????? => 'process_etl2',
job_type??????? => 'STORED_PROCEDURE',
job_action????? => 'process_etl2',
start_date????? => SYSTIMESTAMP,
repeat_interval => 'freq=minutely; bysecond=0',
enabled???????? => TRUE);
end;
---原過程見下:
PROCEDURE create_job(
job_name??????????????? IN VARCHAR2,
schedule_name?????????? IN VARCHAR2,
job_type???????????????? IN VARCHAR2,
job_action????????????? IN VARCHAR2,
number_of_arguments???? IN PLS_INTEGER????????????? DEFAULT 0,
job_class?????????????? IN VARCHAR2????????????? DEFAULT 'DEFAULT_JOB_CLASS',
enabled???????????????? IN BOOLEAN????????????????? DEFAULT FALSE,
auto_drop?????????????? IN BOOLEAN????????????????? DEFAULT TRUE,
comments???????????????? IN VARCHAR2???????????????? DEFAULT NULL,
credential_name???????? IN VARCHAR2???????????????? DEFAULT NULL,
destination_name??????? IN VARCHAR2???????????????? DEFAULT NULL);
PROCEDURE drop_job(
job_name??????????????? IN VARCHAR2,
force?????????????????? IN BOOLEAN????? DEFAULT FALSE,
defer?????????????????? IN BOOLEAN????? DEFAULT FALSE,
commit_semantics??????? IN VARCHAR2 DEFAULT 'STOP_ON_FIRST_ERROR');
總結
以上是生活随笔為你收集整理的oracle ora06576,创建oracle发邮件job导致的故障的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XSS与CSRF两种跨站攻击比较
- 下一篇: 状态目标bfs+哈希表 + 三杯水