统计信息自动收集任务失效原因排查

环境:Oracle 11.2.0.3 RAC
问题:统计信息自动收集任务失效原因排查

  • 1.查看自动任务的状态
  • 2.进一步查看其它信息
  • 3.解决问题

1.查看自动任务的状态

查看自动任务的状态,确认是enabled状态:

SQL> select client_name,status from dba_autotask_client;CLIENT_NAME                                                      STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection                                  ENABLED
auto space advisor                                               ENABLED
sql tuning advisor                                               ENABLEDElapsed: 00:01:03.88

一般来说,这样的结果,就意味着统计信息自动收集是打开的,如今却是没有自动收集。说明确实是有故障,需要进一步深入排查。
若对这些自动任务的状态不理解可以参考之前文章:

  • Oracle的窗口和自动任务

2.进一步查看其它信息

根据 Why Auto Optimizer Statistics Collection May Appear to be "Stuck" and Not Running? (文档 ID 1320246.1)

排查以下项:

The 'auto optimizer stats collection' task is enabled in auto task
STATISTICS_LEVEL has already been set to TYPICAL or FULL
dba_autotask_client_history is empty
Statistics on tables are stale.
Some scheduler window is active and LAST_START_DATE is several days ago.

具体操作记录如下:

--STATISTICS_LEVEL:
SQL> show parameter STATISTICS_LEVEL NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
statistics_level                     string      TYPICAL--dba_autotask_client_history is empty:
SQL> select * from dba_autotask_client_history;no rows selectedElapsed: 00:01:04.79--Some scheduler window is active and LAST_START_DATE 是20-SEP-12 10.00.00.010777 PM
SELECT window_name, last_start_date, enabled, active FROM dba_scheduler_windows;
SQL> SELECT window_name ,2  last_start_date,3  enabled ,4  active5  FROM dba_scheduler_windows;WINDOW_NAME                    LAST_START_DATE                                                             ENABL ACTIV
------------------------------ --------------------------------------------------------------------------- ----- -----
MONDAY_WINDOW                  22-JAN-18 10.00.00.014299 PM PRC                                            TRUE  FALSE
TUESDAY_WINDOW                 23-JAN-18 10.00.01.076798 PM PRC                                            TRUE  FALSE
WEDNESDAY_WINDOW               24-JAN-18 10.00.00.055066 PM PRC                                            TRUE  FALSE
THURSDAY_WINDOW                20-SEP-12 10.00.00.010777 PM PRC                                            TRUE  TRUE
FRIDAY_WINDOW                  26-JAN-18 10.00.00.725176 PM PRC                                            TRUE  FALSE
SATURDAY_WINDOW                27-JAN-18 06.00.00.010751 AM PRC                                            TRUE  FALSE
SUNDAY_WINDOW                  28-JAN-18 06.00.00.593207 AM PRC                                            TRUE  FALSE
WEEKNIGHT_WINDOW                                                                                           FALSE FALSE
WEEKEND_WINDOW                                                                                             FALSE FALSE9 rows selected.Elapsed: 00:00:00.01

可以看到,如今的环境确实完全匹配文档列出的这些特征项。
另外,看下统计信息自动收集任务的WINDOW_GROUP以及对应的MEMBER_NAME:

SQL> select client_name,window_group2  from DBA_AUTOTASK_CLIENT3  where client_name = 'auto optimizer stats collection';CLIENT_NAME                                                      WINDOW_GROUP
---------------------------------------------------------------- ----------------------------------------------------------------
auto optimizer stats collection                                  ORA$AT_WGRP_OSElapsed: 00:01:05.39
SQL> SELECT * FROM dba_scheduler_group_members2  where group_name='ORA$AT_WGRP_OS';OWNER                          GROUP_NAME                     MEMBER_NAME
------------------------------ ------------------------------ -----------------------------------------------------------------------------------------------------------------------------------
SYS                            ORA$AT_WGRP_OS                 "SYS"."MONDAY_WINDOW"
SYS                            ORA$AT_WGRP_OS                 "SYS"."TUESDAY_WINDOW"
SYS                            ORA$AT_WGRP_OS                 "SYS"."WEDNESDAY_WINDOW"
SYS                            ORA$AT_WGRP_OS                 "SYS"."THURSDAY_WINDOW"
SYS                            ORA$AT_WGRP_OS                 "SYS"."FRIDAY_WINDOW"
SYS                            ORA$AT_WGRP_OS                 "SYS"."SATURDAY_WINDOW"
SYS                            ORA$AT_WGRP_OS                 "SYS"."SUNDAY_WINDOW"7 rows selected.Elapsed: 00:00:00.04

可以看到,正常应该是一周7天都有的,但是由于THURSDAY_WINDOW 的窗口ACTIVE是TRUE,导致2012年9月27号(周四)统计信息收集失败。根据MOS描述,会影响其后的窗口都打开失败,进而导致之后所有自动任务的执行都失败。
我实际在我的测试环境验证也是如此,现象如下:

SQL> SELECT window_name, last_start_date, enabled, active FROM dba_scheduler_windows;WINDOW_NAME                                                  LAST_START_DATE                                                             ENABLED    ACTIVE
------------------------------------------------------------ --------------------------------------------------------------------------- ---------- ----------
MONDAY_WINDOW                                                22-JAN-18 10.00.00.011111 PM EST5EDT                                        TRUE       FALSE
TUESDAY_WINDOW                                               23-JAN-18 10.22.54.068776 PM EST5EDT                                        TRUE       FALSE
WEDNESDAY_WINDOW                                             24-JAN-18 10.00.00.005654 PM EST5EDT                                        TRUE       FALSE
THURSDAY_WINDOW                                              25-JAN-18 10.00.00.009885 PM EST5EDT                                        TRUE       FALSE
FRIDAY_WINDOW                                                26-JAN-18 10.00.00.010077 PM EST5EDT                                        TRUE       FALSE
SATURDAY_WINDOW                                              27-JAN-18 05.00.00.004156 PM EST5EDT                                        TRUE       FALSE
SUNDAY_WINDOW                                                28-JAN-18 01.00.00.010044 PM EST5EDT                                        TRUE       TRUE
WEEKNIGHT_WINDOW                                                                                                                         FALSE      FALSE
WEEKEND_WINDOW                                                                                                                           FALSE      FALSE9 rows selected.SQL> EXECUTE DBMS_SCHEDULER.OPEN_WINDOW ('MONDAY_WINDOW','');
BEGIN DBMS_SCHEDULER.OPEN_WINDOW ('MONDAY_WINDOW',''); END;*
ERROR at line 1:
ORA-27480: window "SUNDAY_WINDOW" is currently open
ORA-06512: at "SYS.DBMS_ISCHED", line 493
ORA-06512: at "SYS.DBMS_SCHEDULER", line 1220
ORA-06512: at line 1SQL> 

可以看到我测试环境,因为周日的窗口已经是ACTIVE,再尝试打开周一的窗口就会报错,看起来同时就只能有一个窗口ACTIVE,这与MOS的描述也完全一致。

3.解决问题

根据MOS解决建议手工关闭活动的窗口,我这里就是关闭THURSDAY_WINDOW窗口:

SQL> EXECUTE DBMS_SCHEDULER.CLOSE_WINDOW ('THURSDAY_WINDOW');PL/SQL procedure successfully completed.Elapsed: 00:00:00.14

再次查询状态,确认窗口状态已关闭:

SQL> SELECT window_name ,2  last_start_date,3  enabled ,4  active5  FROM dba_scheduler_windows;WINDOW_NAME                    LAST_START_DATE                                                             ENABL ACTIV
------------------------------ --------------------------------------------------------------------------- ----- -----
MONDAY_WINDOW                  22-JAN-18 10.00.00.014299 PM PRC                                            TRUE  FALSE
TUESDAY_WINDOW                 23-JAN-18 10.00.01.076798 PM PRC                                            TRUE  FALSE
WEDNESDAY_WINDOW               24-JAN-18 10.00.00.055066 PM PRC                                            TRUE  FALSE
THURSDAY_WINDOW                20-SEP-12 10.00.00.010777 PM PRC                                            TRUE  FALSE
FRIDAY_WINDOW                  26-JAN-18 10.00.00.725176 PM PRC                                            TRUE  FALSE
SATURDAY_WINDOW                27-JAN-18 06.00.00.010751 AM PRC                                            TRUE  FALSE
SUNDAY_WINDOW                  28-JAN-18 06.00.00.593207 AM PRC                                            TRUE  FALSE
WEEKNIGHT_WINDOW                                                                                           FALSE FALSE
WEEKEND_WINDOW                                                                                             FALSE FALSE9 rows selected.

这样就找到了问题,另外因为离统计信息信息自动收集关闭已有多年,目前生产环境运行平稳,所以最终决定保守处理,即:先将生产环境的自动任务都关闭,等在备库测试验证后再考虑生产环境开启自动任务。

Reference

  • Why Auto Optimizer Statistics Collection May Appear to be "Stuck" and Not Running? (文档 ID 1320246.1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Markdown使用

#一级标题 ##二级标题 ###三级标题 斜体 粗体 斜体粗体 代码段> 删除内容效果是: 这是一级标题 这是二级标题 这是三级标题 这是斜体这是粗体这是斜体粗体 代码段 FileInputStream is new FileInputStream("text"); byte[] iput new byte[1024]; is.…

灰度图的width和widthstep的区别

灰度图的width是表示图像的每行像素数,widthstep指表示存储一行像素需要的字节数。 在OpenCV里边,widthStep必须是4的倍数,从而实现字节对齐,有利于提高运算速度。 如果8U单通道图像宽度为3,那么widthStep是4&#xff…

【pyradiomics学习】——安装pyradiomics以及简单示例

目录 数据集下载: 示例代码 参考文献: bug修复 运行结果: 数据集下载: https://www.jianguoyun.com/p/DcEwQq0Q45bOBxj09JYC (访问密码: gd8dmv) 示例代码 #!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 20…

最新Django2.0.1在线教育零基础到上线教程(九)

演示地址: http://mxonline.mtianyan.cn 教程仓库地址1: https://github.com/mtianyan/DjangoGetStarted 教程仓库地址2: https://github.com/mtianyan/Mxonline2 教程仓库地址3: https://github.com/mtianyan/Mxonline3 9-1 讲师列表页 teacherlist 和 teacher det…

过滤器 拦截器 区别

转 http://www.cnblogs.com/wangyuyu/archive/2013/07/02/3167354.html1、拦截器是基于java的反射机制的,而过滤器是基于函数回调 2、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器 3、拦截器只能对action请求起作用,而过滤器则可以对…

php --魔术常量 /魔术方法

魔术常量:1. __LINE__返回文件中的当前行号。2. __FILE__返回所在文件的完整路径。包含文件名3. __FUNCTION__返回所在函数名称。4. __CLASS__返回所在类的名称。5. __METHOD__返回所在类方法的名称。需要注意__METHOD__返回的是"class::function"的形式&…

【pyradiomics学习】——影像组学特征

目录 1、形状特征(14个) 2、一阶特征(18个) 灰度共生矩阵特征(24个) 灰度区域大小矩阵特征(16个) 灰度行程矩阵特征(16个) 邻域灰度差矩阵特…

NLP系列学习:前向算法和后向算法

在上一篇文章里,我们简单的概述了隐马尔科夫模型的简单定义在<CRF-tutorial>这一篇文章里,我们可以看到HMM经过发展之后是CRF产生的条件,因此我们需要学好隐马尔科夫模型.在这一部分,我比较推荐阅读宗成庆老师的<自然语言处理>这本书,这一部分宗老师写的很不错,相关…

Java日期处理 开始时间-结束时间查询

//开始时间 timeBegin " 00:00:00"; //结束时间 timeEnd " 23:59:59"; //时间转换 SimpleDateFormat format new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //Java时间类型转换成Long类型(可封装成工具类) public static Long stringToLong(St…

angular路由操作中'#'字符的解决办法

var appangular.module("myapp",["ngRoute"]);app.controller("ctr",function($scope){});//angular1.6.0以上版本需要配置app.config(["$locationProvider",function($locationProvider){ $locationProvider.hashPrefix(""…

【TypeError: float() argument must be a string or a number, not ‘map’】

初始 相关系数过滤法调用函数 from sklearn.feature_selection import SelectKBest from scipy.stats import pearsonr SelectKBest(lambda X,Y:np.array(map(lambda x:pearsonr(x,Y),X.T)).T,k2) .fit_transform(X_test,y_test) TypeError: float() argument must be a strin…

CvScalar

CvScalar定义可存放1—4个数值的数值&#xff0c;其结构如下。 typedef struct CvScalar { doubleval[4]; } CvScalar; CvScalar pt&#xff1b; 如果使用的图像是1通道的&#xff0c;则pt.val[0]中存储数据 如果使用的图像是3通道的&#xff0c;则pt.val[0]&#xff0c;pt…

UVA1493 - Draw a Mess(并查集)

UVA1493 - Draw a Mess(并查集) 题目链接 题目大意:一个N * M 的矩阵&#xff0c;每次你在上面将某个范围上色&#xff0c;不论上面有什么颜色都会被最新的颜色覆盖&#xff0c;颜色是1-9&#xff0c;初始的颜色是0.最后输出这个矩形中。每一个颜色有多少个。某个范围这个分为了…

Hyper-v Server 2012 Release Candidate 部署体验

很多人知道&#xff0c;Microsoft Hyper-V分为两种类型&#xff1a;一种是作为Windows Server的一个组件&#xff0c;另一种是作为虚拟化产品的单独服务器。虽然两者都是技术上的Hyper-V&#xff0c;每个版本的特性和用例各不相同。 Hyper-V Server直接在物理机器硬件上运行&am…

Unity 读取资源(图片)

方法一&#xff1a; 采用Resource.Load方法读取&#xff0c;读取在Unity中Assets下Resources目录下的资源名&#xff08;不采用后缀&#xff09;。 //图片放在Asset/Resources/ Texture2D tex (Texture2D)Resources.Load("图片名称"); 方法二&#xff1a; 采用WWW类…

【Python3 SelectKBest 调用personer出现的错误】

初始 相关系数过滤法调用函数 from sklearn.feature_selection import SelectKBest from scipy.stats import pearsonr SelectKBest(lambda X,Y:np.array(map(lambda x:pearsonr(x,Y),X.T)).T,k2) .fit_transform(X_test,y_test) TypeError: float() argument must be a strin…

ABB机器人的错误处理

ABB机器人的错误处理 errnum 数据类型 errnum用于描述在执行过程中&#xff0c;发生的所有可恢复的错误。例如程序执行时&#xff0c;被零除。 如果机器人程序执行过程中检测到一个错误&#xff0c;错误非致命&#xff0c;可以被错误处理程序处理。 这类错误的典型例子是…

面向对象的七大原则

总脉络图&#xff1a; 一&#xff1a;单一职责原则(全称&#xff1a;“Single-Responsibility Principle”)又称 单一功能原则 核心&#xff1a;解耦和增强内聚性&#xff08;高内聚&#xff0c;低耦合&#xff09; 说明&#xff1a; 就一个类而言&#xff0c;应该只专注于做一…

福建工程学院寒假作业G题

涨姿势题就是所谓的优化题&#xff0c;在组队赛中&#xff0c;队伍发现了一题水题&#xff0c;那么应该交给谁去处理&#xff1f;作为处理水题的代码手&#xff0c;应该具备什么样的素养&#xff1f;1&#xff0c;要快&#xff0c;水题拼的就是速度&#xff01;2&#xff0c;不…

excel 多列匹配相等后 引用值

2019独角兽企业重金招聘Python工程师标准>>> 场景 如图下&#xff0c;当A、B列与E、F列皮配上&#xff0c;C列则引用G列的值 原理 VLOOKUP只能查找单列值。我们可以把多列值拼接后形成一个虚拟列&#xff0c;然后VLOOKUP函数查找这个虚拟列进行匹配。 在C1处输入下…