久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Oracle 11g無法自動收集統計信息怎么辦

147次閱讀
沒有評論

共計 6804 個字符,預計需要花費 18 分鐘才能閱讀完成。

這篇文章給大家分享的是有關 Oracle 11g 無法自動收集統計信息怎么辦的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。

SQL select client_name,task_name,operation_name,status from
dba_autotask_task; — 查詢 dba_autotask_task 視圖根本沒有結果返回。

no rows selected

SQL select job_name,actual_start_date,status from (select * from
dba_scheduler_job_run_details where job_name like ORA$AT_OS_OPT% order by
log_date desc ) where rownum    – 最近一次執行成功的自動收集統計信息的時間如下

JOB_NAME                     ACTUAL_START_DATE                        STATUS

—————————- —————————————- ————-

ORA$AT_OS_OPT_SY_2606 26-SEP-12 10.00.07.902100 PM PRC    SUCCEEDED

ORA$AT_OS_OPT_SY_2586 25-SEP-12
10.00.07.829792 PM PRC    SUCCEEDED

ORA$AT_OS_OPT_SY_2566 24-SEP-12
10.00.07.154019 PM PRC     SUCCEEDED

SQL 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                      WINDO OPTIMIZE

——————————
————————————- —– ——–

TUESDAY_WINDOW 
30-JAN-18 10.00.00.000000 PM PRC      FALSE ENABLED

WEDNESDAY_WINDOW 
31-JAN-18 10.00.00.000000 PM PRC      FALSE ENABLED

THURSDAY_WINDOW 
01-FEB-18 10.00.00.000000 PM PRC      FALSE ENABLED

FRIDAY_WINDOW 
02-FEB-18 10.00.00.000000 PM PRC      FALSE ENABLED

SATURDAY_WINDOW 
03-FEB-18 06.00.00.000000 AM PRC      FALSE ENABLED

SUNDAY_WINDOW   04-FEB-18 06.00.00.000000 AM PRC      FALSE ENABLED

MONDAY_WINDOW 
05-FEB-18 03.00.00.000000 PM PRC      FALSE 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                      ENABLED

SQL select window_name,autotask_status from
DBA_AUTOTASK_WINDOW_CLIENTS;– 自動調用窗口也是正常的。

WINDOW_NAME 
AUTOTASK

—————————— ——–

MONDAY_WINDOW 
ENABLED

TUESDAY_WINDOW 
ENABLED

WEDNESDAY_WINDOW 
ENABLED

THURSDAY_WINDOW 
ENABLED

FRIDAY_WINDOW   ENABLED

SATURDAY_WINDOW 
ENABLED

SUNDAY_WINDOW 
ENABLED

至此,問題較為清晰。11g 中我的自動收集統計信息的相關設置都正常,但為什么不會自動收集統計信息了呢?也就是說為什么查詢 dba_autotask_task 這個視圖沒有 task 在執行呢?

最后,通過各方求助終于解決了問題。原因如下:

SQL select window_name,active from DBA_SCHEDULER_WINDOWS;

WINDOW_NAME 
ACTIV

—————————— —–

MONDAY_WINDOW 
FALSE

TUESDAY_WINDOW 
FALSE

WEDNESDAY_WINDOW 
FALSE

THURSDAY_WINDOW  TRUE

FRIDAY_WINDOW 
FALSE

SATURDAY_WINDOW 
FALSE

SUNDAY_WINDOW 
FALSE

WEEKNIGHT_WINDOW 
FALSE

WEEKEND_WINDOW 
FALSE

正常來說所有的窗口都應該是 false 的狀態。但是 我們現有有一個是 true,或許有可能是因為這個原因。這個窗口是周四的窗口,然后找一下最近一次自動收集統計信息的時間。

SQL select job_name,actual_start_date,status from (select * from
dba_scheduler_job_run_details where job_name like ORA$AT_OS_OPT% order by
log_date desc ) where rownum

JOB_NAME                     ACTUAL_START_DATE                        STATUS

—————————- —————————————- ————-

ORA$AT_OS_OPT_SY_2606 26-SEP-12 10.00.07.902100 PM PRC     SUCCEEDED

ORA$AT_OS_OPT_SY_2586        25-SEP-12
10.00.07.829792 PM PRC     SUCCEEDED

ORA$AT_OS_OPT_SY_2566 24-SEP-12
10.00.07.154019 PM PRC     SUCCEEDED

發現是 12 年 9 月 26 號。查詢了一下萬年歷。26 號正好是周三。而周四變成了 true,可能是因為在收集統計信息的時候數據庫不正常關閉導致的吧!現在將這個 true 改變為 false。

這里注意,如果你的生產環境很久很久沒有自動收集統計信息了的狀態下,請先在測試環境收集統計信息最好做個 spa 報告,不然很有可能影響生產。

SQL EXECUTE DBMS_SCHEDULER.CLOSE_WINDOW (THURSDAY_WINDOW

再次查詢

SQL select window_name,active from DBA_SCHEDULER_WINDOWS;

WINDOW_NAME  ACTIV

—————————— —–

MONDAY_WINDOW 
FALSE

TUESDAY_WINDOW 
FALSE

WEDNESDAY_WINDOW 
FALSE

THURSDAY_WINDOW  FALSE

FRIDAY_WINDOW 
FALSE

SATURDAY_WINDOW 
FALSE

SUNDAY_WINDOW 
FALSE

WEEKNIGHT_WINDOW 
FALSE

WEEKEND_WINDOW 
FALSE

都變為 flase 了。

今天是周一。現在將周一的收集統計信息的時間變更一下。

SQL 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                       WINDO OPTIMIZE

——————————
————————————– —– ——–

MONDAY_WINDOW 
29-JAN-18 10.00.00.000000 PM PRC       FALSE ENABLED

TUESDAY_WINDOW 
30-JAN-18 10.00.00.000000 PM PRC       FALSE ENABLED

WEDNESDAY_WINDOW 
31-JAN-18 10.00.00.000000 PM PRC       FALSE ENABLED

THURSDAY_WINDOW 
01-FEB-18 10.00.00.000000 PM PRC       FALSE ENABLED

FRIDAY_WINDOW 
02-FEB-18 10.00.00.000000 PM PRC       FALSE ENABLED

SATURDAY_WINDOW 
03-FEB-18 06.00.00.000000 AM PRC       FALSE
ENABLED

SUNDAY_WINDOW 
04-FEB-18 06.00.00.000000 AM PRC       FALSE ENABLED

7 rows selected.

修改自動收集時間窗口。

SQL begin

  2 
dbms_scheduler.disable(name =
SYS . MONDAY_WINDOW , force = true);

  3  end;

  4  /

PL/SQL procedure successfully completed.

SQL begin

  2 
dbms_scheduler.set_attribute(name=
SYS . MONDAY_WINDOW ,attribute =
repeat_interval ,value= freq=daily;byday=mon;byhour=15;byminute=0;bysecond=0

  3  end;

  4  /

PL/SQL procedure successfully completed.

SQL begin

  2 
dbms_scheduler.enable(name =
SYS . MONDAY_WINDOW

  3  end;

  4  /

PL/SQL procedure successfully completed.

修改成功

SQL  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                        WINDO OPTIMIZE

——————————
————————————— —– ——–

MONDAY_WINDOW 
29-JAN-18 03.00.00.000000 PM PRC        FALSE ENABLED

TUESDAY_WINDOW 
30-JAN-18 10.00.00.000000 PM PRC        FALSE ENABLED

WEDNESDAY_WINDOW 
31-JAN-18 10.00.00.000000 PM PRC        FALSE ENABLED

THURSDAY_WINDOW 
01-FEB-18 10.00.00.000000 PM PRC        FALSE ENABLED

FRIDAY_WINDOW 
02-FEB-18 10.00.00.000000 PM PRC        FALSE ENABLED

SATURDAY_WINDOW 
03-FEB-18 06.00.00.000000 AM PRC        FALSE
ENABLED

SUNDAY_WINDOW 
04-FEB-18 06.00.00.000000 AM PRC        FALSE ENABLED

7 rows selected.

跑完之后再次查詢。

SQL select job_name,actual_start_date,status from (select * from
dba_scheduler_job_run_details where job_name like ORA$AT_OS_OPT% order by
log_date desc ) where rownum

JOB_NAME                     ACTUAL_START_DATE                          STATUS

—————————- —————————————— ————–

ORA$AT_OS_OPT_SY_2626 29-JAN-18
03.00.00.732062 PM PRC       STOPPED

ORA$AT_OS_OPT_SY_2606        26-SEP-12
10.00.07.902100 PM PRC           SUCCEEDED

ORA$AT_OS_OPT_SY_2586        25-SEP-12
10.00.07.829792 PM PRC           SUCCEEDED

果然,是因為這個窗口的問題。這個 DBA_SCHEDULER_WINDOWS 正常的狀態應該是 false 的狀態,當系統調用時變為 true 的狀態,現在因為數據庫不正常關閉,導致了這個窗口并沒有改變過來。所以數據庫所有的收集作業都斷了。

再次查詢

SQL select client_name,task_name,operation_name,status from
dba_autotask_task;

CLIENT_NAME                       TASK_NAME                                  OPERATION_NAME                      STATUS

——————————— —————————————— ———————————– ——–

sql tuning advisor                AUTO_SQL_TUNING_PROG                       automatic sql tuning task           ENABLED

auto space advisor                auto_space_advisor_prog                    auto
space advisor job              ENABLED

auto optimizer stats collection   gather_stats_prog                          auto optimizer stats job            ENABLED

通過在網上查詢相關資料【http://blog.itpub.net/235507/viewspace-1137629/】,寫到 Oracle 11g 統計信息自動收集任務運行任務調用的流程:

1、首先是 dba_autotask_task– dba_autotask_client 建立自動執行任務

2、再根據時間窗口及資源組建立自動執行作業

dba_autotask_client– dba_scheduler_window_groups– dba_scheduler_windows– dba_scheduler_jobs

dba_autotask_client– dba_scheduler_job_classes

感謝各位的閱讀!關于“Oracle 11g 無法自動收集統計信息怎么辦”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-20發表,共計6804字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 收藏| 方山县| 新安县| 资溪县| 桃园县| 和田县| 洞头县| 清原| 钦州市| 久治县| 龙泉市| 聊城市| 宜宾县| 石河子市| 福建省| 临洮县| 承德县| 安平县| 尚志市| 昌平区| 西藏| 金湖县| 佛坪县| 和平县| 古蔺县| 伊吾县| 白城市| 金湖县| 丽水市| 灵台县| 乐东| 江口县| 华宁县| 翁源县| 永福县| 建昌县| 甘肃省| 项城市| 云和县| 阳朔县| 乐陵市|