heberoxx 发表于 2018-9-21 11:07:40

oracle11g自动维护任务

  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/subplanLevel 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 (文档>


页: [1]
查看完整版本: oracle11g自动维护任务