10g 11g 12c 的自动维护任务的总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xxzhaobb/article/details/84852072

10g

在10g版本上,主要有2个预定义的维护窗口
weeknight_window : 周一到周五,每天22:00开始,次日06:00结束
weekend_windows : 周六和周日的全天 

预定义的自动系统任务
自动统计信息收集作业: Automatic statistics collection job
自动段指导作业 :automatic segment advisor job 

文档:
Database Administrator's Guide
23 Managing Automatic System Tasks Using the Maintenance Window

11g 
在11g中,预定义了9个维护窗口
周一到周五 每天22:00 ~ 次日02:00;周六和周日 06:00 ~ 次日02:00
MONDAY_WINDOW           : 周一 22:00 ~ 周二 02:00
TUESDAY_WINDOW          : 周二 22:00 ~ 周三 02:00
WEDNESDAY_WINDOW        : 周三 22:00 ~ 周四 02:00
THURSDAY_WINDOW         : 周四 22:00 ~ 周五 02:00
FRIDAY_WINDOW           : 周五 22:00 ~ 周六 02:00
SATURDAY_WINDOW         : 周六 06:00 ~ 周日 02:00
SUNDAY_WINDOW           : 周日 06:00 ~ 周一02:00

为了兼容以前的版本而留下的维护窗口:(默认不使用)
WEEKNIGHT_WINDOW : 周一到周五 每天22:00开始 ~ 次日06:00结束。
WEEKEND_WINDOW   : 周六和周日的全天

预定义的自动维护任务
自动优化器统计信息收集:Automatic Optimizer Statistics Collection
自动段指导:Automatic Segment Advisor
自动 SQL 优化指导:Automatic SQL Tuning Advisor

文档:
Database Administrator’s Guide
26 Managing Automated Database Maintenance Tasks

12c
和11g一样,预定义了9个维护窗口
每天的维护窗口
周一到周五 每天22:00 ~ 次日02:00;周六和周日 06:00 ~ 次日02:00
MONDAY_WINDOW           : 周一 22:00 ~ 周二 02:00
TUESDAY_WINDOW          : 周二 22:00 ~ 周三 02:00
WEDNESDAY_WINDOW        : 周三 22:00 ~ 周四 02:00
THURSDAY_WINDOW         : 周四 22:00 ~ 周五 02:00
FRIDAY_WINDOW           : 周五 22:00 ~ 周六 02:00
SATURDAY_WINDOW         : 周六 06:00 ~ 周日 02:00
SUNDAY_WINDOW           : 周日 06:00 ~ 周一02:00

预定义的自动维护任务
12c增加了SQL计划管理(SPM)进化指导(SPM evolve advisor)
自动优化器统计信息收集:Automatic Optimizer Statistics Collection  
自动段指导:Automatic Segment Advisor 
自动 SQL 优化指导:Automatic SQL Tuning Advisor 
SQL计划管理(SPM)进化指导:SPM Evolve Advisor
 
文档:
Database Administrator’s Guide
26 Managing Automated Database Maintenance Tasks

以下是一些查询,启用及禁用方法

10g
启用方法

EXECUTE DBMS_SCHEDULER.ENABLE('GATHER_STATS_JOB');
EXECUTE DBMS_SCHEDULER.ENABLE('AUTO_SPACE_ADVISOR_JOB');
禁用方法:
EXECUTE DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
EXECUTE DBMS_SCHEDULER.DISABLE('AUTO_SPACE_ADVISOR_JOB');
确认作业状态
select job_name,enabled 
from dba_scheduler_jobs 
where job_name in ('GATHER_STATS_JOB','AUTO_SPACE_ADVISOR_JOB');

11g&12c
禁用方法:
-- 比如,禁用sql tuning advisor 
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;

其中,client_name为dba_autotask_client表中的任务名
SQL> select client_name from DBA_AUTOTASK_CLIENT;
 
CLIENT_NAME
----------------------------------------------------------------
auto optimizer stats collection
auto space advisor
sql tuning advisor

-- 注意,在12c中,查询client_name的结果和11g是一样的。
只是CLIENT_NAME:sql tuning advisor同时控制着自动 SQL 优化指导(Automatic SQL Tuning Advisor)和SQL计划管理(SPM)进化指导(SPM Evolve Advisor)。

启用和禁用所有的维护任务
--禁用
EXECUTE DBMS_AUTO_TASK_ADMIN.DISABLE;
--启用
EXECUTE DBMS_AUTO_TASK_ADMIN.ENABLE;


一些视图:
10g
DBA_SCHEDULER_JOBS:数据库内所有作业的相关详细内容
DBA_SCHEDULER_JOB_LOG:作业的执行日志
DBA_SCHEDULER_JOB_RUN_DETAILS:作业的执行详细 
DBA_SCHEDULER_WINGROUP_MEMBERS:维护窗口的详细
DBA_SCHEDULER_WINDOWS:数据库内所有窗口的相关内容 
DBA_SCHEDULER_JOB_CLASSES:Resource Plan相关信息

11g&12c
DBA_AUTOTASK_CLIENT:查看各个维护任务客户端的相关内容
DBA_AUTOTASK_TASK:查看各个维护任务的相关内容 
DBA_AUTOTASK_JOB_HISTORY:维护任务作业的执行历史
DBA_AUTOTASK_SCHEDULE:今后32天内的各个Client的执行计划
DBA_AUTOTASK_OPERATION:各个Client的执行操作
DBA_AUTOTASK_WINDOW_HISTORY:各个维护窗口的执行历史 
DBA_AUTOTASK_WINDOW_CLIENTS:属于各个维护窗口客户端的维护任务的状态
DBA_SCHEDULER_WINDOWS:数据库内所有窗口的相关内容
DBA_SCHEDULER_WINDOW_GROUPS:数据库内所有窗口组的相关内容 
DBA_RSRC_PLANS:数据库中所有的资源计划(Resource Plan)信息
DBA_RSRC_PLAN_DIRECTIVES:资源计划指令信息


-- 重建数据库自动维护任务

-- 重建维护窗口 ,可能会报一些可以忽略的错误 
@?/rdbms/admin/catnomwn.sql 
 
-- 也可以通过手动删除维护窗口代替catnomwn.sql。
execute dbms_scheduler.drop_window('MONDAY_WINDOW');
execute dbms_scheduler.drop_window('TUESDAY_WINDOW');
execute dbms_scheduler.drop_window('WEDNESDAY_WINDOW');
execute dbms_scheduler.drop_window('THURSDAY_WINDOW');
execute dbms_scheduler.drop_window('FRIDAY_WINDOW');
execute dbms_scheduler.drop_window('SATURDAY_WINDOW');
execute dbms_scheduler.drop_window('SUNDAY_WINDOW');
 
-- 重建维护窗口和维护作业(任务)
@?/rdbms/admin/catmwin.sql

猜你喜欢

转载自blog.csdn.net/xxzhaobb/article/details/84852072
今日推荐