1. 程式人生 > >oracle11g自動維護任務

oracle11g自動維護任務

診斷 oracle10g consumer sch schema nan 參考 define iso

oracle 11g中默認的自動維護任務分三類:
Automatic Optimizer Statistics Collection(自動優化器統計信息收集)
收集數據庫中所有無統計信息或僅有過時統計信息的 Schema 對象的 Optimizer(優化器)統計信息。SQL query optimizer(SQL 查詢優化器)使用此任務收集的統計信息提高 SQL 執行的性能。 *

Automatic Segment Advisor(自動段指導)
識別有可用回收空間的段,並提出如何消除這些段中的碎片的建議。您也可以手動運行 Segment Advisor 獲取更多最新建議,或獲取 Automatic Segment Advisor 沒有檢查到的那些有可能做空間回收的段的建議。*

* Automatic SQL Tuning Advisor(自動 SQL 優化指導)
檢查高負載 SQL 語句的性能,並提出如何優化這些語句的建議。您可以配置此指導,自動應用建議的SQL profile。

啟用/禁用維護任務:
client_name來自:
select * from DBA_AUTOTASK_CLIENT

---禁用

BEGIN
  dbms_auto_task_admin.disable(
    client_name => ‘sql tuning advisor‘,
    operation   => NULL,
    window_name => NULL);
END;
/

---啟用

BEGIN
  dbms_auto_task_admin.enable(
    client_name => ‘sql tuning advisor‘,
    operation   => NULL,
    window_name => NULL);
END;
/

要為所有窗口啟用或禁用所有自動維護任務,請在不帶參數的情況下調用ENABLE或DISABLE過程:

---禁用
EXECUTE DBMS_AUTO_TASK_ADMIN.DISABLE;

---啟用
EXECUTE DBMS_AUTO_TASK_ADMIN.DISABLE;

---結果
select * from DBA_AUTOTASK_WINDOW_CLIENTS;

禁用特定的維護窗口:

BEGIN
  dbms_auto_task_admin.disable(
    client_name => ‘sql tuning advisor‘, 
    operation   => NULL, 
    window_name => ‘MONDAY_WINDOW‘);
END;
/

10g與11g預定義調度程序窗口的區別:
Oracle10g : WEEKNIGHT_WINDOW and WEEKEND_WINDOW
Oracle11g : MONDAY_WINDOW .... SUNDAY_WINDOW.
為了向下兼容,WEEKNIGHT_WINDOW 和 WEEKEND_WINDOW 仍然存在。
窗口打開持續的時間在 11g 中有所更改。星期一到星期五從晚上10點到淩晨2點,星期六到星期日從上午6點到淩晨2點。

修改自動任務的運行時間開始於23點,持續時間60分鐘:

exec dbms_scheduler.disable( name => ‘MONDAY_WINDOW’, force => TRUE);
exec dbms_scheduler.set_attribute( name => ‘MONDAY_WINDOW’, attribute => ‘repeat_interval’,value => ‘freq=daily;byday=MON;byhour=23;byminute=0;bysecond=0’);
exec dbms_scheduler.set_attribute( name => ‘MONDAY_WINDOW’, attribute => ‘DURATION’,value => numtodsinterval(60,‘minute‘)));
exec dbms_scheduler.enable( name => ‘MONDAY_WINDOW’);

結果查看:
select * from dba_scheduler_windows;

默認使用DEFAULT_MAINTENANCE_PLAN資源計劃:

SQL> select window_name, resource_plan from dba_scheduler_windows;

WINDOW_NAME            RESOURCE_PLAN
------------------------------ ------------------------------
MONDAY_WINDOW              DEFAULT_MAINTENANCE_PLAN
TUESDAY_WINDOW             DEFAULT_MAINTENANCE_PLAN
WEDNESDAY_WINDOW           DEFAULT_MAINTENANCE_PLAN
THURSDAY_WINDOW            DEFAULT_MAINTENANCE_PLAN
FRIDAY_WINDOW              DEFAULT_MAINTENANCE_PLAN
SATURDAY_WINDOW            DEFAULT_MAINTENANCE_PLAN
SUNDAY_WINDOW              DEFAULT_MAINTENANCE_PLAN
WEEKNIGHT_WINDOW
WEEKEND_WINDOW

默認資源管理

DEFAULT_MAINTENANCE_PLAN defines the following resource allocations:

Consumer Group/subplan  Level 1     Level 2     Maximum Utilization Limit
ORA$AUTOTASK_SUB_PLAN   -           25%         90
ORA$DIAGNOSTICS         -           5%          90
OTHER_GROUPS            -           70%  
SYS_GROUP               75%         -

在此計劃中,SYS_GROUP消費者組中的任何會話都將獲得優先權。(此組中的會話是由用戶帳戶創建的會話SYS和SYSTEM。)會話中未使用的任何資源分配SYS_GROUP隨後由屬於計劃中其他使用者組和子計劃的會話共享。在該分配中,25%用於維護任務,5%用於執行診斷操作的後臺進程,70%用於用戶會話。用於最大利用率限制ORA$AUTOTASK_SUB_PLAN和ORA$DIAGNOSTICS為90。因此,即使CPU空閑,該計劃不能被分配超過90%的CPU資源。

相關視圖:

dba_scheduler_window_groups;  --維護窗口組
dba_scheduler_wingroup_members --維護窗口組對應窗口
dba_scheduler_windows --維護窗口歷史信息
DBA_AUTOTASK_CLIENT_JOB --查詢自動收集任務正在執行的job
DBA_AUTOTASK_JOB_HISTORY --查詢自動收集任務歷史執行狀態
DBA_AUTOTASK_CLIENT_HISTORY --查詢自動收集任務歷史job

參考:調度程序維護任務或 Autotasks (文檔 ID 1526120.1)

oracle11g自動維護任務