ORACLE11G自动维护任务简析
生活随笔
收集整理的這篇文章主要介紹了
ORACLE11G自动维护任务简析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ORACLE 11G 自動維護任務:
? 自動維護任務是一種按規則自動啟動的數據庫維護操作任務。比如自動收集為查詢優化器使用的統計信息。自動維護任務按維護窗口自動運行。所謂自動維護窗口是按照預定義的間隔時間窗口。
? oracle11g數據庫有三種預定義的自動維護任務: ■ Automatic Optimizer Statistics Collection: ■ Automatic Segment Advisor ?www.2cto.com ? ■ Automatic SQL Tuning Advisor(這個是oracle 11g新添加的自動維護任務)
? 缺省情況下,這三個任務配置為在所有維護窗口運行。 維護窗口:維護窗口是一個連續的時間間隔,用于管理自動維護任務所用。維護窗口是oracle 調度窗口,屬于窗口組MAINTENANCE_WINDOW_GROUP。 一:配置自動維護任務: 1:啟用和禁止維護任務: 使用DBMS_AUTO_ADMIN pl/sql包來啟用或禁用任務: 禁用任務: 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, ?www.2cto.com ? window_name => NULL); END; 這里client_name參數可以通過數據字典視圖DBA_AUTOTASK_CLIENT來查詢。 sys@ORCL11> select client_name from dba_autotask_client; CLIENT_NAME ------------------------------------------------------------ auto optimizer stats collection auto space advisor sql tuning advisor 如果想啟用或禁用所有窗口自動維護任務,調用ENABLE或DISABLE過程: EXECUTE DBMS_AUTO_TASK_ADMIN.DISABLE;
? 2:為某一個維護窗口啟用或禁用維護窗口 缺省情況下,所有維護任務在所有預定義的維護窗口都運行??梢詫δ骋粋€維護窗口啟用或禁用自動化任務。 BEGIN dbms_auto_task_admin.disable( client_name => 'sql tuning advisor',? operation ? => NULL,? window_name => 'MONDAY_WINDOW'); END; 上面的例子是對維護窗口monday_window進行禁用sql tuning advisor。
? 二:配置維護窗口:
? 可是使用DBMS_SCHEDULER 包來修改窗口屬性。 1:修改維護窗口 --先禁用維護窗口 BEGIN dbms_scheduler.disable( name ?=> 'SATURDAY_WINDOW'); --修改維護窗口屬性: dbms_scheduler.set_attribute( name ? ? ?=> 'SATURDAY_WINDOW', attribute => 'DURATION', value ? ? => numtodsinterval(4, 'hour')); --啟用維護窗口 ?www.2cto.com ? dbms_scheduler.enable( name => 'SATURDAY_WINDOW'); END; / 對于當前打開的窗口,你需要首先禁用,然后修改再啟用,配置立即生效,如果你不通過這三個過程來修改屬性,屬性是不會生效的,直到下一次窗口打開。 2:創建新窗口: BEGIN dbms_scheduler.create_window( window_name ? ? => 'EARLY_MORNING_WINDOW', duration ? ? ? ?=> ?numtodsinterval(1, 'hour'), resource_plan ? => 'DEFAULT_MAINTENANCE_PLAN', repeat_interval => 'FREQ=DAILY;BYHOUR=5;BYMINUTE=0;BYSECOND=0'); dbms_scheduler.add_window_group_member( group_name ?=> 'MAINTENANCE_WINDOW_GROUP', window_list => 'EARLY_MORNING_WINDOW'); END; / 3:刪除窗口: BEGIN DBMS_SCHEDULER.REMOVE_WINDOW_GROUP_MEMBER( group_name ?=> 'MAINTENANCE_WINDOW_GROUP', window_list => 'EARLY_MORNING_WINDOW'); END; ?www.2cto.com ? / 三:跟蹤job運行情況:
? 可以通過查詢視圖DBA_AUTOTASK_HISTORY追蹤job運行情況: SQL> select client_name,job_name,job_start_time from dba_autotask_job_history; CLIENT_NAME ? ? ? ? ?JOB_NAME ? ? ? ? ? ? JOB_START_TIME -------------------- -------------------- ------------------------------------ auto optimizer stats ORA$AT_OS_OPT_SY_1 ? 09-APR-12 10.00.02.039000 PM +08:00 auto space advisor ? ORA$AT_SA_SPC_SY_2 ? 09-APR-12 10.00.02.050000 PM +08:00 sql tuning advisor ? ORA$AT_SQ_SQL_SW_3 ? 09-APR-12 10.00.02.015000 PM +08:00
總結
以上是生活随笔為你收集整理的ORACLE11G自动维护任务简析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle约束的关键字Enable/D
- 下一篇: Select For update语句浅