在 Oracle 11g 升级后无法运行自动优化器统计信息收集作业

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13142721/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 01:12:41  来源:igfitidea点击:

Cannot get auto optimizer stats collection job to run after Oracle 11g upgrade

oracleoracle11gscheduler

提问by Steve Broberg

We recently upgraded our 10g server to 11g (11.2.0.3.0), and I see that stats gathering should be handled via the Automated Maintenance Tasks feature - specifically the "auto optimizer stats collection" job.

我们最近将 10g 服务器升级到 11g (11.2.0.3.0),我发现应该通过自动维护任务功能来处理统计信息收集——特别是“自动优化器统计信息收集”工作。

However, since our upgrade (5 days ago), I have not seen any of these jobs run in the scheduler, and the Automated Maintenance Tasks interface in OEM does not show the jobs having been run. DBA_AUTOTASK_JOB_HISTORY has no rows, and I see no history of any stat job running in the scheduler tab or OEM, yet as far as I can tell, the system is configured correctly:

但是,自从我们升级(5 天前)以来,我没有看到任何这些作业在调度程序中运行,并且 OEM 中的自动维护任务界面没有显示已运行的作业。DBA_AUTOTASK_JOB_HISTORY 没有行,我在调度程序选项卡或 OEM 中看不到任何统计作业运行的历史记录,但据我所知,系统配置正确:

    SELECT col
         , val
      FROM ( SELECT *
               FROM DBA_AUTOTASK_CLIENT
              WHERE CLIENT_NAME = 'auto optimizer stats collection'
           )
   UNPIVOT (    val                            
            FOR col                              
             IN ( CLIENT_NAME
                , STATUS
                , CONSUMER_GROUP
                , CLIENT_TAG
                , PRIORITY_OVERRIDE
                , ATTRIBUTES
                , WINDOW_GROUP
                , SERVICE_NAME
                )
           );

  COL               VAL
  ----------------- ---------------------------------------
  CLIENT_NAME       auto optimizer stats collection
  STATUS            ENABLED
  CONSUMER_GROUP    ORA$AUTOTASK_STATS_GROUP
  CLIENT_TAG        OS
  PRIORITY_OVERRIDE INVALID
  ATTRIBUTES        ON BY DEFAULT, VOLATILE, SAFE TO KILL
  WINDOW_GROUP      ORA$AT_WGRP_OS


  SQL> select * from DBA_AUTOTASK_WINDOW_CLIENTS;

  WINDOW_NAME                    WINDOW_NEXT_TIME                                                            WINDO AUTOTASK OPTIMIZE SEGMENT_ SQL_TUNE HEALTH_M
  ------------------------------ --------------------------------------------------------------------------- ----- -------- -------- -------- -------- --------
  MONDAY_WINDOW                  01-NOV-12 10.00.00.000000 AM AMERICA/NEW_YORK                               FALSE ENABLED  ENABLED  DISABLED ENABLED  DISABLED
  TUESDAY_WINDOW                 01-NOV-12 10.00.00.000000 AM AMERICA/NEW_YORK                               FALSE ENABLED  ENABLED  DISABLED ENABLED  DISABLED
  WEDNESDAY_WINDOW               01-NOV-12 10.00.00.000000 AM AMERICA/NEW_YORK                               FALSE ENABLED  ENABLED  DISABLED ENABLED  DISABLED
  THURSDAY_WINDOW                01-NOV-12 10.00.00.000000 AM AMERICA/NEW_YORK                               FALSE ENABLED  ENABLED  DISABLED ENABLED  DISABLED
  FRIDAY_WINDOW                  01-NOV-12 10.00.00.000000 AM AMERICA/NEW_YORK                               FALSE ENABLED  ENABLED  DISABLED ENABLED  DISABLED
  SATURDAY_WINDOW                01-NOV-12 10.00.00.000000 AM AMERICA/NEW_YORK                               FALSE ENABLED  ENABLED  DISABLED ENABLED  DISABLED
  SUNDAY_WINDOW                  01-NOV-12 10.00.00.000000 AM AMERICA/NEW_YORK                               FALSE ENABLED  ENABLED  DISABLED ENABLED  DISABLED

Have I missed something?

我错过了什么吗?

采纳答案by Sujit

Cause

原因

Just want to share the solution for all who will face this problem in the future.

只是想为所有将来会遇到此问题的人分享解决方案。

This problem is caused when you shutdown the database for maintenance etc while one of the scheduler window is active and corresponding auto maintenance job is running. So when the database is shutdown, corresponding job is killed by the status of maintenance window remains active.

当您在调度程序窗口之一处于活动状态且相应的自动维护作业正在运行时关闭数据库进行维护等会导致此问题。所以当数据库关闭时,相应的作业被杀死,维护窗口的状态保持活动。

This can be confirmed by following query.

这可以通过以下查询来确认。

SQL> select window_name,active from DBA_SCHEDULER_WINDOWS;

WINDOW_NAME                    ACTIV
------------------------------ -----
WEEKNIGHT_WINDOW               FALSE
WEEKEND_WINDOW                 FALSE
MONDAY_WINDOW                  FALSE
TUESDAY_WINDOW                 FALSE
WEDNESDAY_WINDOW               FALSE
THURSDAY_WINDOW                FALSE
FRIDAY_WINDOW                  FALSE
SATURDAY_WINDOW                TRUE         <-- This is still active.
SUNDAY_WINDOW                  FALSE

Following query is showing that currently there are no auto stats job is running.

以下查询显示当前没有正在运行的自动统计作业。

SQL> select CLIENT_NAME,JOB_NAME,JOB_SCHEDULER_STATUS
  2  from DBA_AUTOTASK_CLIENT_JOB
  3  where client_name = 'auto optimizer stats collection';

no rows selected

未选择任何行

Solution

解决方案

close the active window.

关闭活动窗口。

SQL> EXECUTE DBMS_SCHEDULER.CLOSE_WINDOW ('SATURDAY_WINDOW');

PL/SQL procedure successfully completed.

PL/SQL 过程成功完成。

SQL> select window_name,active from DBA_SCHEDULER_WINDOWS;

WINDOW_NAME                    ACTIV
------------------------------ -----
WEEKNIGHT_WINDOW               FALSE
WEEKEND_WINDOW                 FALSE
MONDAY_WINDOW                  FALSE
TUESDAY_WINDOW                 FALSE
WEDNESDAY_WINDOW               FALSE
THURSDAY_WINDOW                FALSE
FRIDAY_WINDOW                  FALSE
SATURDAY_WINDOW                FALSE
SUNDAY_WINDOW                  FALSE

Next time your job will run just fine.

下次你的工作会运行得很好。

回答by Sujit

See the following My Oracle Support (MOS) Article: Scheduled Maintenance Auto Tasks Not Working After 11.2.0.3 Upgrade [ID 1452836.1]

请参阅以下 My Oracle Support (MOS) 文章:计划维护自动任务在 11.2.0.3 升级后不起作用 [ID 1452836.1]