Средства диагностики и утилиты отладки в 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.