zoukankan      html  css  js  c++  java
  • Oracle11g 统计信息——统计信息自动收集任务

    背景:

    在使用cacti监控oracle数据库IO的时候发现每天晚上10点钟的时候oracle数据库读写明显增加,如下图所示:

    对这个问题,后来查了一下是因为oracle在运行一个信息自动收集任务。oracle 11g中统计信息自动收集任务的名称是auto optimizer stats collection。11g中自动任务默认的执行时间窗口(oracle时间窗口介绍)为:

    •     周一到周五是晚上10点开始到2点结束
    •     周末是早上六点,持续20个小时。

    1、查看自动收集任务及状态

    select client_name,status from Dba_Autotask_Client where client_name='auto optimizer stats collection';

    2、停止自动收集任务

    复制代码
    --关闭信息自动收集任务
    BEGIN
          DBMS_AUTO_TASK_ADMIN.DISABLE(
                         client_name => 'auto optimizer stats collection',
                         operation => NULL, window_name => NULL);
      END;
     /
     
    PL/SQL procedure successfully completed.
    
    --再次查询
    select client_name,status from Dba_Autotask_Client where client_name='auto optimizer stats collection';
    CLIENT_NAME                                                      STATUS
    ---------------------------------------------------------------- --------
    auto optimizer stats collection                                  DISABLED
    复制代码

    但是此时再查询DBA_ATUOTASK_TASK视图时,显示该任务状态还是ENABLED

    select client_name,status from dba_autotask_task where client_name='auto optimizer stats collection';
    CLIENT_NAME                                                      STATUS
    ---------------------------------------------------------------- --------
    auto optimizer stats collection                                  ENABLED

    Oracle给出的解释是在现在的版本中(11.1 to 11.2)一个client对应一个task,但是在将来的版本中会出现多个client会对应一个task,所以一个client被disabled了,不会改变task的状态。[ID 858852.1]

    3、启动自动收集任务

    复制代码
     BEGIN
            DBMS_AUTO_TASK_ADMIN.ENABLE(
                           client_name => 'auto optimizer stats collection',
                           operation => NULL, window_name => NULL);
        END;
        /
    PL/SQL procedure successfully completed.
    --再次查询
    select client_name,status from Dba_Autotask_Client where client_name='auto optimizer stats collection'; CLIENT_NAME STATUS ---------------------------------------------------------------- -------- auto optimizer stats collection ENABLED
    复制代码

    4、查看自动收集任务历史执行状态

    SELECT client_name, window_name, jobs_created, jobs_started, jobs_completed FROM dba_autotask_client_history WHERE client_name like '%stats%';
     View Code

    通过时间窗口名称可以看出是周几执行的,在时间窗口内创建了几次job,执行了几次job,当然可以加上window_start_time来查看具体执行的日期。

    5、查看自动收集任务执行时间窗口

    select WINDOW_NAME, WINDOW_NEXT_TIME , WINDOW_ACTIVE,OPTIMIZER_STATS from DBA_AUTOTASK_WINDOW_CLIENTS order by WINDOW_NEXT_TIME ;
    复制代码
           WINDOW_NAME    WINDOW_NEXT_TIME    WINDOW_ACTIVE    OPTIMIZER_STATS
    1    THURSDAY_WINDOW    07-AUG-14 10.00.00.000000 PM +08:00    FALSE    ENABLED
    2    FRIDAY_WINDOW    08-AUG-14 10.00.00.000000 PM +08:00    FALSE    ENABLED
    3    SATURDAY_WINDOW    09-AUG-14 06.00.00.000000 AM +08:00    FALSE    ENABLED
    4    SUNDAY_WINDOW    10-AUG-14 06.00.00.000000 AM +08:00    FALSE    ENABLED
    5    MONDAY_WINDOW    11-AUG-14 10.00.00.000000 PM +08:00    FALSE    ENABLED
    6    TUESDAY_WINDOW    12-AUG-14 10.00.00.000000 PM +08:00    FALSE    ENABLED
    7    WEDNESDAY_WINDOW    13-AUG-14 10.00.00.000000 PM +08:00    FALSE    ENABLED
    复制代码

    6、查询自动收集任务正在执行的JOB

    select client_name, JOB_SCHEDULER_STATUS from DBA_AUTOTASK_CLIENT_JOB where client_name='auto optimizer stats collection';

    这个查询没有结果也很正常,只有job正在运行时,该查询才有结果。

    7、与时间窗口相关的视图
    查询自动收集任务所属时间窗口组

    select client_name,window_group from dba_autotask_client where client_name='auto optimizer stats collection';
           CLIENT_NAME    WINDOW_GROUP
    1    auto optimizer stats collection    ORA$AT_WGRP_OS

    查询自动收集任务所属时间窗口组详细信息

    select * from dba_scheduler_window_groups where window_group_name='ORA$AT_WGRP_OS';
           WINDOW_GROUP_NAME    ENABLED    NUMBER_OF_WINDOWS    NEXT_START_DATE    COMMENTS
    1    ORA$AT_WGRP_OS    TRUE    7    07-AUG-14 10.00.00.000000 PM +08:00    auto optimizer stats collection

    查看自动收集任务所属时间窗口组包含的子时间窗口

    select * from dba_scheduler_wingroup_members where window_group_name='ORA$AT_WGRP_OS';
    复制代码
           WINDOW_GROUP_NAME    WINDOW_NAME
    1    ORA$AT_WGRP_OS    MONDAY_WINDOW
    2    ORA$AT_WGRP_OS    TUESDAY_WINDOW
    3    ORA$AT_WGRP_OS    WEDNESDAY_WINDOW
    4    ORA$AT_WGRP_OS    THURSDAY_WINDOW
    5    ORA$AT_WGRP_OS    FRIDAY_WINDOW
    6    ORA$AT_WGRP_OS    SATURDAY_WINDOW
    7    ORA$AT_WGRP_OS    SUNDAY_WINDOW
    复制代码

    查看子时间窗口信息

    select a.window_name,a.next_start_date,a.active from dba_scheduler_windows a
        inner join dba_scheduler_wingroup_members b on a.window_name = b.window_name
        where b.window_group_name='ORA$AT_WGRP_OS';
    复制代码
           WINDOW_NAME    NEXT_START_DATE    ACTIVE
    1    MONDAY_WINDOW    11-AUG-14 10.00.00.000000 PM +08:00    FALSE
    2    TUESDAY_WINDOW    12-AUG-14 10.00.00.000000 PM +08:00    FALSE
    3    WEDNESDAY_WINDOW    13-AUG-14 10.00.00.000000 PM +08:00    FALSE
    4    THURSDAY_WINDOW    07-AUG-14 10.00.00.000000 PM +08:00    FALSE
    5    FRIDAY_WINDOW    08-AUG-14 10.00.00.000000 PM +08:00    FALSE
    6    SATURDAY_WINDOW    09-AUG-14 06.00.00.000000 AM +08:00    FALSE
    7    SUNDAY_WINDOW    10-AUG-14 06.00.00.000000 AM +08:00    FALSE
    复制代码

    通过这个查询可以看出DBA_AUTOTASK_WINDOW_CLIENTS视图的信息其实和上面的结果一样。

    总结一下统计信息自动收集任务运行的步骤:
    首先是dba_autotask_task-->dba_autotask_client建立自动执行任务
    再根据时间窗口及资源组建立自动执行作业
    dba_autotask_client-->dba_scheduler_window_groups-->dba_scheduler_windows-->dba_scheduler_jobs
    dba_autotask_client-->dba_scheduler_job_classes
    相关视图:
    dba_autotask_task
    dba_autotask_client
    dba_autotask_client_job
    dba_autotask_window_clients
    dba_autotask_client_history

    dba_scheduler_jobs
    dba_scheduler_job_classes
    dba_scheduler_window_groups
    dba_scheduler_windows
    dba_scheduler_wingroup_members

    自定义自动收集任务时间窗口:
    How to use an own Maintenance Window for the Statistics Collection in 11g [ID 1300313.1]

    MOS相关文档: FAQ: Automatic Statistics Collection [ID 1233203.1]

    zhuan :http://www.cnblogs.com/xwdreamer/p/3897580.html

  • 相关阅读:
    Windows Server 2012配置开机启动项
    Windows Server 2019 SSH Server
    NOIP2017 senior A 模拟赛 7.7 T1 棋盘
    Noip 2015 senior 复赛 Day2 子串
    Noip 2015 senior复赛 题解
    Noip 2014 senior Day2 解方程(equation)
    Noip 2014 senior Day2 寻找道路(road)
    Noip 2014 senior Day2 无线网络发射器选址(wireless)
    Noip2014senior复赛 飞扬的小鸟
    Noip 2014 senior 复赛 联合权值(link)
  • 原文地址:https://www.cnblogs.com/andy6/p/5979551.html
Copyright © 2011-2022 走看看