Средства диагностики и утилиты отладки в Oracle

ОГЛАВЛЕНИЕ

Трассировочные файлы Oracle

Главным является файл журнала оповещений (alert.log), который содержит важнейшую информацию о работе БД, в ходе диагностики его следует проверять в первую очередь.

В начале работы БД в alert.log заносятся все параметры файла init.ora и сообщения о запуске фоновых процессов. Регистрируется также  используемый этим экземпляром поток и последовательный номер журнала, в который производит запись процесс LGWR.

В общем случае заносится также информация о запусках и остановах БД, создании табличных пространств и сегментов отката, некоторых операциях alter, переключениях журналов и сообщениях об ошибках.

Помимо alert.log Oracle автоматически генерирует два файла трассировки. Один из них - фоновый файл трассировки, создается  фоновыми процессами DBWR и LGWR. Эти файлы трассировки могут и не создаваться при запуске системы, в зависимости от наличия информации для записи.

Файл трассировки второго типа создается соединением пользователя с БД и называется пользовательским файлом трассировки.

Такой файл появляется, только если сеанс пользователя наталкивается на ошибку.

Имена файлов трассировки имеют стандартный формат и зависят от используемой ОС. В среде UNIX фоновый файл трассировки выглядит как ORA_PID_PROCESS.trc, а пользовательский файл - PROCESS_ID.trc. При этом ORA_PID представляет идентификатор процесса Oracle, а PROCESS_ID - системного процесса, создавшего файл трассировки.

Для отладки поддерживаются различные средства диагностики. Для выгрузки в файлы трассировки диагностической информации можно подключить определенные события. Для диагностики повреждений диска и памяти применяются некоторые специальные параметрыinit.ora. Эти параметры не задаются при нормальной работе БД, т.к. они снижают ее производительность.

Задание событий трассировки

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

-выгрузить содержание всего управляющего файла

alter session set events 'immediate trace name controlf level 10';  (rdbms/mesg/oraus.msg)

-выгрузить состояние системы для диагностики проблем, связанных с зависанием

 alter session set events 'immediate trace name systemstate level 10';

-выгрузить содержание всех заголовков файлов данных

alter session set events 'immediate trace name file_hdrs level 10';

-выгрузить стек ошибки и процесса (напр., ошибка ORA-00604)

alter session set events ' 604 trace name errorstack forever' ;

При задании событий с помощью init.ora используются следующие строки:

EVENT = "604 TRACE NAME ERRORSTACK FOREVER"  - выгружается стек ошибок каждый раз, когда процесс встречает ошибку ORA-00604;

EVENT = "10210 TRACE NAME CONTEXT FOREVER, LEVEL 10"  - контролируется целостность каждого блока при чтении с диска в кэш.

Наиболее распространенные коды событий:

10013 и 10015  -- применяются при диагностике проблем, связанных с повреждением сегментов отката.

event = "10015 trace name context forever"

10029 и 10030  -- информация о началах и остановках сеансов.

10210 и 10211  -- проверяются блоки данных, считываемые в область SGA

event = "10210 trace name context forever, level 10"

10231 и 10232 -- пропустить поврежденные блоки в ходе сканирования таблицы и выгрузить их в файл трассировки

alter session set events '10231 trace name context off';

event = "10231 trace name context forever, level 10"

Первый оператор отключает проверку блоков для данного сеанса. Второй включает проверку всех блоков БД, считываемых любым процессом в область SGA.