oracle sql删除job,修改Oracle的Job Scheduler 日志级别及删除运行日志
Oracle的Job 運行久了會產生大量運行日志,這些信息可通過下面的方式清除:
1、創建job:
Create job links to previous job class.
DBMS_SCHEDULER.create_job (
job_name? ? ? ? => 'test_log_job',
job_type? ? ? ? => 'PLSQL_BLOCK',
job_action? ? ? => 'BEGIN NULL; END;',
job_class? ? ? => 'no_logging_class',
enabled? ? ? ? => FALSE,
auto_drop? ? ? => FALSE,
comments? ? ? ? => 'Job used to job logs.');
2、job的日志級別:
--job日志級別由兩個因素決定,一個是job自己日志級別,別一個是使用的job cloass的日志級別,取兩者中的最高值。
--job創建時日志級別默認是DBMS_SCHEDULER.LOGGING_RUNS,
--創建的job時,如果不指定job class,默認為DEFAULT_JOB_CLASS,而DEFAULT_JOB_CLASS默認logging level是DBMS_SCHEDULER.LOGGING_RUNS,
--所以創建的job的logging level至少是LOGGING_RUNS。
--如果不產生日志,必須禁止job自己日志級別,同時不能使用默認的默認為DEFAULT_JOB_CLASS.
-- 重新建立無日志job class:
begin
DBMS_SCHEDULER.create_job_class (
job_class_name? ? ? ? ? => 'no_logging_class',
resource_consumer_group => 'default_consumer_group',
logging_level? ? ? ? ? => DBMS_SCHEDULER.LOGGING_OFF);
end;
--禁止job自身日志,修改日志級別LOGGING_LEVEL屬性:
BEGIN
dbms_scheduler.set_attribute('JOB_NAME','LOGGING_LEVEL',DBMS_SCHEDULER.LOGGING_OFF);
END;
--1)DBMS_SCHEDULER.LOGGING_OFF:關閉日志記錄功能;
--2)DBMS_SCHEDULER.LOGGING_RUNS:對任務的運行信息進行記錄;
--3)DBMS_SCHEDULER.LOGGING_FULL:記錄任務所有相關信息,不僅有任務的運行情況,甚至連任務的創建、修改等也均將記入日志。
3、查詢和刪除Job Log:
--在當前普通用戶和SYS用戶中都可以查看SCHEDULER_JOBS生成的日志(名稱全用大寫)
select * from all_scheduler_job_log where owner='USERNAME' and job_name='XXX'
select * from all_scheduler_job_run_details where owner='USERNAME' and job_name='XXX'and job_name='XXX'
--以SYS用戶登錄,刪除某用戶下的某個job的運行信息:
delete from all_scheduler_job_run_details where owner='USERNAME' and job_name='XXX'
總結
以上是生活随笔為你收集整理的oracle sql删除job,修改Oracle的Job Scheduler 日志级别及删除运行日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle的all函数,oracle函
- 下一篇: 真的有可以赚钱的游戏吗 游戏搬砖其