Базы данных Oracle - статьи

         

Как найти нужный трассировочный файл


Как уже упоминалось, все трассировочные файлы пользовательских сеансов находятся в файловой системе компьютера, на котором работает сервер Oracle, в каталоге, заданном параметром инициализации

user_dump_dest. Если трассируется только один сеанс, обычно ему соответствует последний по времени создания трассировочный файл. При интенсивном использовании трассировки, однако, файлов в каталоге user_dump_dest может быть очень много, и найти файл, соответствующий исследуемому сеансу, может оказаться непросто.

Имя файла содержит идентификатор процесса Oracle, который его создал. Определить идентификатор этого процесса можно разными способами. В сеансе или приложении, в котором включалась трассировка, достаточно выполнить запрос:

select p.spid from v$process p, v$session s where p.addr = s.paddr and s.audsid = userenv('SESSIONID');

Для успешного выполнения этого запроса необходима привилегия SELECT на представления словаря данных v_$process и v_$session (v$process и v$session - это их общедоступные синонимы). Эту привилегию должен предоставить владелец словаря данных (пользователь sys):

SQL> connect sys/change_on_install as sysdba Connected. SQL> grant select on v_$process to scott;

Grant succeeded.

SQL> grant select on v_$session to scott;

Grant succeeded.

Можно включить в имя трассировочного файла любую строку для облегчения поиска (она будет добавлена перед расширением, .trc). Для этого перед включением трассировки надо выполнить:

alter session set tracefile_identifier='УникальнаяСтрока';

Для произвольного сеанса с идентификатором some_sid (который вы можете определять по различным критериям - по имени пользователя, имени компьютера, с которого подключилось приложение и т.д.) идентификатор серверного процесса получается похожим запросом:

select p.spid from v$process p, v$session s where p.addr = s.paddr and s.sid = some_sid;

Эти способы позволят определить единственный нужный трассировочный файл, если приложение подключено к выделенному серверу. Проблемы трассировки при работе с разделяемым сервером (в режиме MTS) рассматриваются далее.



Содержание раздела