Oracle mechanics

20.03.2012

Почему может не собираться статистика в Oracle 11g?

Filed under: commonplace,Oracle,statistics — Игорь Усольцев @ 00:17
Tags: , ,

Проблемы с устаревшей статистикой объектов в Oracle 11g встречаются нечасто, и каждый такой случай может быть по-своему интересен, например:

DBA_TAB_MODIFICATIONS показывает, что все DML в бд своевременно мониторятся, однако запрос к DBA_AUTOTASK_TASK:

SQL> select status, last_good_date, last_try_date, sysdate from dba_autotask_task where client_name = 'auto optimizer stats collection';
STATUS  LAST_GOOD_DATE      LAST_TRY_DATE       SYSDATE
------- ------------------- ------------------- ----------
ENABLED 25-FEB-12 22.12.08  25-FEB-12 22.12.08  16.03.2012

— показывает, что AUTOTASK по сбору статистики, находясь в статусе ENABLED, не выполняется :(

По проблеме на Металинке нашёлся совершенно феерический документ со статусом «Problem»: Why Auto Optimizer Statistics Collection May Appear to be «Stuck»? [ID 1320246.1], где причина проблемы описывается так:

User restarted database using shutdown immediately while one scheduler window is running

If for some reason, SATURDAY_WINDOW was not closed after the database restarted and the status of SATURDAY_WINDOW remains ‘ACTIVE’ in dba views it will never be closed until you close it manually. Other windows will also be stuck and statistics information collecting will not execute automatically

— т.е. по-хорошему, прежде чем аккуратно перегрузить (shutdown immediate) инстанс нужно проверить, все ли окна (scheduler windows) закрыты %)

В нашем случае незакрытым осталось «воскресное окно»:

SQL> SELECT window_name, last_start_date, enabled, active FROM dba_scheduler_windows where enabled = 'TRUE' and active = 'TRUE';
WINDOW_NAME    LAST_START_DATE     ENABLED ACTIVE
-------------- ------------------ -------- ------
SUNDAY_WINDOW  19-FEB-12 06.00.00  TRUE    TRUE

, после рекомендованного закрытия которого:

SQL> EXEC DBMS_SCHEDULER.CLOSE_WINDOW ('SUNDAY_WINDOW');

PL/SQL procedure successfully completed

AUTOTASK по сбору статистики продолжит успешно выполняться (при открытии очередного окна):

SQL> select status, last_good_date, last_try_date, sysdate from dba_autotask_task where client_name = 'auto optimizer stats collection';

STATUS  LAST_GOOD_DATE      LAST_TRY_DATE       SYSDATE
------- ------------------- ------------------ -----------
ENABLED 18-MAR-12 22.13.28  18-MAR-12 22.13.28  19.03.2012

Судя по тому что в документе упоминается возникновение проблем только после выполнения SHUTDOWN IMMEDIATE — это очень опасный метод! При SHUTDOWN ABORT таких проблем ни разу не было)

1 комментарий »

  1. абидна/»прикольна» то что Oracle считает это не багом, а «ожидаемым поведением»…

    комментарий от odenysenko — 21.03.2012 @ 16:39 | Ответить


RSS feed for comments on this post. TrackBack URI

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

Создайте бесплатный сайт или блог на WordPress.com.

%d такие блоггеры, как: