修改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 單一實例 從32位 遷移到 64位 方法
在CentOS 6.4下安裝Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虛擬機器中安裝步驟
Debian 下 安裝 Oracle 11g XE R2