Oracle mechanics

11.10.2015

12c: ORA-600: [kdBlkCheckError] при использовании TEMPORARY UNDO в OEBS

Filed under: Oracle,Oracle new features — Игорь Усольцев @ 21:11
Tags: ,

спорадичеки попадались нам с Леонидом Борчуком в процессе выполнения стандартного Concurrent Processing-а при отсутствии всякой информации в логах на apps-ах и следующими замечаниями в alert.log:

Thu Oct 01 06:42:16 2015
Errors in file /opt/oracle/admin/diag/rdbms/oebs/OEBS2/trace/OEBS2_ora_30980.trc:
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [kdBlkCheckError], [515], [2014592], [14508], [], [], [], [], [], [], [], []
Cannot recover, soft-corrupt the buffer.    --*
Thu Oct 01 06:42:16 2015
Corrupt Block Found
         CONT = 0, TSN = 284, TSNAME = TEMP --**
         RFN = 3, BLK = 2014592, RDBA = 14597504
         OBJN = 0, OBJD = 14597504, OBJECT = , SUBOBJECT =
         SEGMENT OWNER = , SEGMENT TYPE =
Errors in file /opt/oracle/admin/diag/rdbms/oebs/OEBS2/trace/OEBS2_ora_30980.trc  (incident=293623):
ORA-00603: ORACLE server session terminated by fatal error
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [kdBlkCheckError], [515], [2014592], [14508], [], [], [], [], [], [], [], []
Incident details in: /opt/oracle/admin/diag/rdbms/oebs/OEBS2/incident/incdir_293623/OEBS2_ora_30980_i293623.trc

— первый аргумент ошибки [kdBlkCheckError] и (*) сообщают о проблемах восстановления блока временного файла [515] табличного пространства TEMP (**) при выполнении стандартного DML в Global Temporary Table, текст которого можно найти в incident-файле: (more…)

Реклама

21.09.2013

Перемещение AUD$

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

На версии 11.2.0.3 попытка сократить неоправданно «распухший» сегмент AUD$:

SQL> select tablespace_name,
  2         segment_space_management,
  3         extent_management,
  4         round(bytes / 1024 / 1024 / 1024) as GB
  5    from dba_tablespaces ts
  6    join dba_segments
  7   using (tablespace_name)
  8   where segment_name = 'AUD$'
  9  /

TABLESPACE_NAME  SEGMENT_SPACE_MANAGEMENT EXTENT_MANAGEMENT   GB
---------------- ------------------------ ----------------- ----
SYSAUX           AUTO                     LOCAL               20

, уже находящийся в ASSM табличном пространстве, согласно рекомендациям How To Shrink Table AUD$ (Doc ID 1080112.1) для версий 11.2.0.2 — 11.2.0.4 командами:

alter table SYS.AUD$ enable row movement;
ALTER table SYS.AUD$ SHRINK SPACE CASCADE;
alter table SYS.AUD$ disable row movement;

результата не принесла — размер сегмента не изменился, но в логе появились ошибки типа: (more…)

24.11.2012

Таймауты параллельных ожиданий, или почему по умолчанию объекты бд создаются noparallel

Filed under: Oracle,parameters,PX,statistics,wait events — Игорь Усольцев @ 00:43
Tags: , , , ,

Простой недорогой OLTP запрос в непараллельном режиме выполняется предсказуемо быстро:

11.2.0.3.@ SQL> select /*+ noparallel */ *
  2    from view_history
  3   where order_id = 4181494
  4     and start_dt >= sysdate - 20
  5     and sysdate - 20 < end_dt
  6  /

no rows selected

Elapsed: 00:00:00.12

(more…)

11.11.2012

ORA-00600: [kglUnKeepHandle] при превышении лимита количества дочерних курсоров

Filed under: hints,Oracle,shared pool — Игорь Усольцев @ 22:19
Tags: , ,

alert.log:

Mon Oct 22 14:00:44 2012
Errors in file /opt/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_9219.trc  (incident=110752):
ORA-00600: internal error code, arguments: [kglUnKeepHandle], [0x7D39A5EE0], [], [], [], [], [], [], [], [], [], []
Mon Oct 22 14:01:58 2012
Non critical error ORA-48913 caught while writing to trace file "/opt/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_9219.trc"
Error message: ORA-48913: Writing into trace file failed, file size limit [512000000] reached
Writing to the above trace file is disabled for now on...

— попутная ошибка ORA-48913 вызвана ограничением размера трейса:

SQL> @param max_dump_file_size

NAME                VALUE    DSC
------------------- -------- ------------------------------------
max_dump_file_size  1000000  Maximum size (in bytes) of dump file

, в отличие от описания выраженного в блоках ОС = 512 байт (Oracle 11.1.0.7 Linux x86_64) — см. [ID 30762.1]

Трейс /opt/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_9219.trc достаточно быстро указывает на причину ошибки ORA-600 [kglUnKeepHandle]: (more…)

10.11.2012

ORA-600 [sorput_1] bitmap index deadlock в версиях Oracle 10.2 — 11.1

Filed under: commonplace,Блокировки,error,Oracle — Игорь Усольцев @ 15:11
Tags: , ,

Хорошо известны официальные рекомендации не использовать bitmap-индексы в OLTP приложениях по архитектурным соображениям. Для разрешения возникающих при выполнении конкурирующих DML конфликтов Oracle использует своеобразный механизм deadlock, который на практике может сопровождаться ORA-600:

ORA-00060: Deadlock detected. More info in file /opt/oracle/admin/diag/rdbms/ORCL/ORCL/trace/ORCL_ora_20536.trc.
Errors in file /opt/oracle/admin/diag/rdbms/ORCL/ORCL/trace/ORCL_ora_20536.trc (incident=475770):
ORA-00600: internal error code, arguments: [sorput_1], [], [], [], [], [], [], [], [], [], [], []
ORA-00060: deadlock detected while waiting for resource
Incident details in: /opt/oracle/admin/diag/rdbms/ORCL/ORCL/incident/incdir_475770/ORCL_ora_20536_i475770.trc

Как оказалось, проблема, с которой мы столкнулись, — штатная, в точности описана в документе поддержки Ora-600 [sorput_1] and Ora-60 Loading Data [ID 826084.1] — не является багом и в качестве единственного варианта решения предлагается избавиться от bitmap-индексов, на время OLTP активности ( или навсегда :)

Детали описаниния deadlock graph достаточно стандартны для блокировок битового индекса: (more…)

21.12.2011

ORA-00600 [ktbdchk1: bad dscn] — как найти повреждённые индексы

Filed under: Backup and Recovery,bugs,database,Oracle — Игорь Усольцев @ 00:04
Tags: , , ,

Пример практического проявления Bug 8895202 – ORA-1555 / ORA-600 [ktbdchk1: bad dscn] in Physical Standby after switch-over [ID 8895202.8] и действий, которые могут помочь в разрешении возникающих проблем.

Проблема (неоднократно наблюдалась после switch-over Physical Standby database to the Primary database role): в блоках индексов itl (Interested Transaction List) commit SCN оказывается больше чем block SCN

Практические симптомы:

  • в 11.1.0.7 — ORA-00600 [ktbdchk1: bad dscn] при попытке изменения повреждённых индексных блоков (при операциях INSERT/UPDATE)
  • в 11.2.0.2 — к предыдущей ошибке добавляется ORA-1555 при выполнении запросов, в плане которых используется индекс с «битыми» блоками

Сообщение об ошибке в alert.log в последнем случае выглядит весьма примечательно (Query Duration=0 sec или несколько секунд):

ORA-01555 caused by SQL statement below (SQL ID: 06mwy7ua78adg, Query Duration=0 sec, SCN: 0x0786.62a03def)

Баг зафиксирован и описан для версий 11.1.0.7 и далее, полное избавление намечено сделать в версии 12.1 :)

В описании можно найти порядок «лечения», остаётся найти и обезвредить (например, с помощью ALTER INDEX REBUILD [ONLINE PARALLEL N]) индексы, затронутые проблемой

(more…)

15.11.2011

ORA-600 [qsmkii:inline obj not found] при выполнении запроса с множественными WITH в Oracle 10.2.0.4

Filed under: bugs,CBO,Oracle — Игорь Усольцев @ 01:04
Tags: ,

Пользовательская ошибка при попытке создать материализованное представление:

ORA-03114: not connected to ORACLE

Судя по трейсам отключение пользовательского процесса:

ORA-07445: exception encountered: core dump [kghalp()+58] [SIGSEGV] [Address not mapped to object] [0x000000068] [] []

вызвано предыдущей ошибкой:

ORA-00600: internal error code, arguments: [qsmkii:inline obj not found], [], [], [], [], [], [], []

Два способа решения проблемы: (more…)

Блог на WordPress.com.