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的JobScheduler日志级别及删除运行日志
文章起源:http://scyingshan.cn/article/jjccip.html