Oracle mechanics

25.05.2014

ORA-01555 Query Duration=0 sec / ORA-00600 [ktbdchk1: bad dscn] — как найти повреждённые индексы-2

Filed under: Диагностика системы (instance),Oracle — Игорь Усольцев @ 01:10
Tags: ,

В версии 11.2.0.3 (x86_64) наблюдалось:

Wed Apr 02 14:49:28 2014
ORA-01555 caused by SQL statement below (SQL ID: c8cnvhk4q2p06, Query Duration=0 sec, SCN: 0x07ba.30370ee5):
...
Wed Apr 02 17:45:24 2014
ORA-01555 caused by SQL statement below (SQL ID: 67zqyf4uan1ra, Query Duration=0 sec, SCN: 0x07ba.33f51fb3):
...
Wed Apr 02 18:55:17 2014
ORA-01555 caused by SQL statement below (SQL ID: 6sdbngwrahabz, Query Duration=0 sec, SCN: 0x07ba.2636cd92):
...

В документе поддержки ORA-01555 When Max Query Length Is Less Than Undo Retention, small or 0 Seconds (Doc ID 1131474.1) в качестве одной из причин упоминается расплывчатое Indexes/table mismatch с рекомендацией to drop/recreate (not rebuild) all table indexes

В некоторых случаях (при небольшом кол-ве затронутых индексов) сократить/уточнить список проблемных индексов можно просмотрев планы выполнения на предмет совпадений, например, так:

SQL> select object_name from dba_hist_sql_plan where sql_id = 'c8cnvhk4q2p06' and operation = 'INDEX'
  2  intersect
  3  select object_name from dba_hist_sql_plan where sql_id = '6sdbngwrahabz' and operation = 'INDEX'
  4  intersect
  5  select object_name from dba_hist_sql_plan where sql_id = '67zqyf4uan1ra' and operation = 'INDEX'
  6  /
 
OBJECT_NAME
-------------------------------
INVOICE_TROUBLE_IDX1

, а проверить предположение — командой:

SQL> ANALYZE INDEX OPS.INVOICE_TROUBLE_IDX1 VALIDATE STRUCTURE ONLINE;

, которая в нашем случае генерировала в alert.log бесконечные записи типа:

...
ORA-01555 caused by SQL statement below (SQL ID: dcdg7tx80rkks, SCN: 0x07ba.45797c86):
ANALYZE INDEX OPS.INVOICE_TROUBLE_IDX1 VALIDATE STRUCTURE ONLINE
ORA-01555 caused by SQL statement below (SQL ID: dcdg7tx80rkks, SCN: 0x07ba.45797c87):
ANALYZE INDEX OPS.INVOICE_TROUBLE_IDX1 VALIDATE STRUCTURE ONLINE
...

Через некоторое время (точнее, через 9 дней) проявилась действительная причина проблемы:

adrci> show incident -last 5

ADR Home = /opt/oracle/admin/diag/rdbms/orcl/orcl1:
*************************************************************************
INCIDENT_ID          PROBLEM_KEY                              CREATE_TIME
-------------------- ---------------------------------------- ---------------------------------
612210               ORA 600 [ktbdchk1: bad dscn]             2014-04-11 13:46:51.032000 +04:00
613010               ORA 600 [ktbdchk1: bad dscn]             2014-04-11 12:23:45.373000 +04:00
612434               ORA 600 [ktbdchk1: bad dscn]             2014-04-11 12:09:07.407000 +04:00
611442               ORA 600 [ktbdchk1: bad dscn]             2014-04-11 12:07:35.840000 +04:00
593333               ORA 600 [qmxqrwRewRndUPlus2]             2014-03-13 23:16:41.928000 +04:00
First 5 rows fetched (*** more available ***)

— для быстрого решения которой можно использовать index rebuild [online] с нулевым временем простоя, и прочие способы диагностики из ORA-00600 [ktbdchk1: bad dscn] — как найти повреждённые индексы

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

Комментариев нет.

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 такие блоггеры, как: