欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

oracle sql删除job,修改Oracle的Job Scheduler 日志级别及删除运行日志

发布时间:2025/4/5 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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 日志级别及删除运行日志的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。