Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Администрирование Oracle Database:
- Установка и настройка базы данных
- Обновление, применение патчей
- Оптимизация, настройка производительности
- Обучение, подготовка персонала, оптимизация
  • Страница:
  • 1
  • 2
  • 3

ТЕМА:

oracle найти блокирующую сессию 12 года 3 мес. назад #4089

  •  аватар Автор темы
  • Посетитель
  • Посетитель
а не только узнать виновную в блокировке сессию (dba_dml_locks).
Ведь Оракл это как то делает, сообщая в alert.log про Deadlock!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: oracle найти блокирующую сессию 12 года 3 мес. назад #4090

  •  аватар
  • Посетитель
  • Посетитель

Hitachi пишет: а не только узнать виновную в блокировке сессию (dba_dml_locks).

Нет. Это может быть и -ннадцатьтысячный с конца DML. Факт блокировки строки это всего лишь маленький байтик и хранить подобную историю его появления было бы черезчур расточительно.

Ведь Оракл это как то делает, сообщая в alert.log про Deadlock!

:)Там всего лишь:
Current SQL statement for this session:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: oracle найти блокирующую сессию 12 года 3 мес. назад #4091

  •  аватар Автор темы
  • Посетитель
  • Посетитель

:)Там всего лишь:

Current SQL statement for this session:


ну хоть его то зацепить! (он - последний - в моём случае наверняка и будет виновным! :-))

a то ведь у меня уже почти получилась! :-)
select sql_text from (
select * from v$open_cursor where sid = 18 order by address desc )
where rownum<2

(delete и update и вправду получают максим. address. Только вот insert нет

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: oracle найти блокирующую сессию 12 года 3 мес. назад #4092

  •  аватар Автор темы
  • Посетитель
  • Посетитель
мне бы надо перехватить нужный SQL ещё раньше, к тому же у меня речь скорее не о дедлоках а о блокировках (т.е. когда неведомый мне до селе DML запер некий объект и не отпускает!!!)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от .

Re: oracle найти блокирующую сессию 12 года 3 мес. назад #4093

  •  аватар
  • Посетитель
  • Посетитель

Hitachi пишет: мне бы надо перехватить нужный SQL ещё раньше, к тому же у меня речь скорее не о дедлоках а о блокировках (т.е. когда неведомый мне до селе DML запер некий объект и не отпускает!!!)

Вообще то с этим вопросом наверно вместе с разработчиком надо садица и анализировать подобные места - вы же знаете операции которые пользователи выполняют, а разработчик знает код.

Обьекты получалось выудить -
Сессия в ожидании enqueue
залоченная -
select * from v$session_wait sw, v$session s
where s.sid = sw.sid and event = 'enqueue'

Блокирующая -
select a.sid blocker_sid, a.username blocker_username, a.serial#, a.logon_time,  
b.type, b.lmode mode_held, b.ctime time_held, c.sid waiter_sid, c.request request_mode, c.ctime time_waited 
from v$lock b, v$enqueue_lock c, v$session a 
where  a.sid     = b.sid
and    b.id1     = c.id1(+)
and    b.id2     = c.id2(+)
and    c.type(+) = 'TX' 
and    b.type    = 'TX' 
and    b.block   = 1 
order by time_held, time_waited

Запрос ожидающей -
select sql_text from v$sqltext where address in
         (select sql_address from v$session where sid=&Name)
         order by piece

По самому запросу довольно можно понять что сессия не может сделать.

Не всегда этого достаточно, до в большинстве случаев в принципе разрести можно :))
Удачи

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: oracle найти блокирующую сессию 12 года 3 мес. назад #4094

  •  аватар
  • Посетитель
  • Посетитель

Hitachi пишет:

:)Там всего лишь:

Current SQL statement for this session:


ну хоть его то зацепить! (он - последний - в моём случае наверняка и будет виновным! :-))

Ты ничего не понял. Сессия, удерживающая блокировку, будет продолжать своей жизнью, выполняя множество прочих
DML, текущих в разные моменты времени. И даже если она в свою очередь напорется на блокировку и будет висеть, её текущий DML будет не пордившим, а упершимся в блокировку.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
  • 3
Время создания страницы: 0.187 секунд