統計信息自動收集任務失效原因排查

環境: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.pswp.cn/news/255574.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255574.shtml
英文地址,請注明出處:http://en.pswp.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處輸入下…