Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Как определить чей SELECT?  [new]
2006
Guest
Добрый день.

В alert логе постоянно вываливается ошибка и приводится неудачный запрос SELECT ... Как определить что за приложение или job его выполняет?
23 мар 06, 07:30    [2479098]     Ответить | Цитировать Сообщить модератору
 Re: Как определить чей SELECT?  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Обычно там пишется, в какой трейс-файл записана подробная информация об ошибке, в котором можно найти (SID, SERIAL#) сессии и текущий оператор
alert.log
Thu Dec 29 16:04:55 2005
Errors in file /u/app/oracle/admin/prod/bdump/prod_s000_7454.trc:
ORA-07445: exception encountered: core dump [LdiDateFromArray()+248] [SIGSEGV] [Address not mapped to object] [0x0] [] []
/u/app/oracle/admin/prod/bdump/prod_s000_7454.trc
/u/app/oracle/admin/prod/bdump/prod_s000_7454.trc
Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
With the Partitioning option
JServer Release 9.2.0.7.0 - Production
ORACLE_HOME = /u/app/oracle/product/9.2.0.1.0
System name: SunOS
...
*** 2005-12-29 16:04:55.122
*** SESSION ID:(75.10400) 2005-12-29 16:04:55.119
Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0x0, PC: [0x2199024,LdiDateFromArray()+248]
*** 2005-12-29 16:04:55.126
ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [LdiDateFromArray()+248] [SIGSEGV] [Address not mapped to object] [0x0] [] []
Current SQL statement for this session:
SELECT "ID" ...
23 мар 06, 07:41    [2479109]     Ответить | Цитировать Сообщить модератору
 Re: Как определить чей SELECT?  [new]
2006
Guest
Это я знаю. Только эта ошибка происходит ночью, скорее всего это был job. Можно как-то узнать какой имненно это был job с данным SID и SERIAL#?
23 мар 06, 11:04    [2479924]     Ответить | Цитировать Сообщить модератору
 Re: Как определить чей SELECT?  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Что мешает обрамить задание джоба блоком BEGIN-EXCEPTION WHEN OTHERS...RAISE-END и в секции обработки исключения писать необходимую информацию в какую-либо таблицу ?
23 мар 06, 11:10    [2479979]     Ответить | Цитировать Сообщить модератору
 Re: Как определить чей SELECT?  [new]
2006
Guest
Вячеслав Любомудров
Что мешает обрамить задание джоба блоком BEGIN-EXCEPTION WHEN OTHERS...RAISE-END и в секции обработки исключения писать необходимую информацию в какую-либо таблицу ?


все задания заврапированы, а править код в базе не разрешено условиями тех.поддержки
23 мар 06, 12:15    [2480465]     Ответить | Цитировать Сообщить модератору
 Re: Как определить чей SELECT?  [new]
2006
Guest
Да я уже нашёл адрес этого запроса в v$sql, и дальше быстренько наваял програмулину на дельфях, которая будет каждые несколько секунд искать сессию в v$session с этим адресом sql, и если найдёт, то закинет мне всю информацию по этой сессии в мою тестовую базу. Запущу её на ночь, пусть ждёт когда этот запрос вылезет.
Может и коряво, но первое что пришло в голову. Раз уж по другому никак нельзя.
23 мар 06, 12:23    [2480516]     Ответить | Цитировать Сообщить модератору
 Re: Как определить чей SELECT?  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5928
2006
Вячеслав Любомудров
Что мешает обрамить задание джоба блоком BEGIN-EXCEPTION WHEN OTHERS...RAISE-END и в секции обработки исключения писать необходимую информацию в какую-либо таблицу ?


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


Тогда обращайся в техподдержку.

Можно триггер на БД повесить. Например по событию SERVERERROR и в нём фиксировать обстоятельства.
23 мар 06, 12:24    [2480528]     Ответить | Цитировать Сообщить модератору
 Re: Как определить чей SELECT?  [new]
Elic
Member

Откуда:
Сообщений: 29980
2006
Вячеслав Любомудров
Что мешает обрамить задание джоба блоком BEGIN-EXCEPTION WHEN OTHERS...RAISE-END и в секции обработки исключения писать необходимую информацию в какую-либо таблицу ?
все задания заврапированы, а править код в базе не разрешено условиями тех.поддержки
Ты не понял. Тебе не предлагают исправлять какие бы то ни было процедуры. Надо лишь обрамить вызов процедуры задания (user_jobs.what), который никогда не бывает заврапленным.
23 мар 06, 12:34    [2480621]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить