Oracle мертвые блокировки DB

Вот быстрое краткое изложение, но экранное учебное руководство получит Вас дальше:

'экран' вызывает его, и Вы используете ctrl-a затем d, чтобы разъединить (и оставить это выполнением)

'экранируйте открытые заседания списков-l

'экранируйте-r' подключения к разъединенной сессии.

'экранируйте-x' подключения к активной сессии (если Вы хотите выполнить два терминала сразу),

Вот экранное учебное руководство:
http://www.kuro5hin.org/story/2004/3/9/16838/14935

1
задан 17 September 2009 в 22:58
3 ответа

Мертвые блокировки являются конкретным видом ситуации, где транзакция A имеет блокировку и затем пытается заблокировать что-то, что в настоящее время блокируется транзакцией B и должно ожидать. Затем транзакция B пытается заблокировать объект, в настоящее время блокируемый транзакцией A. База данных 'замечает', что ситуация не может решить естественно так ошибки одна из транзакций и вынуждает ее откатывать.

Как другие заявили, это необычно, и я ожидал бы, что Вам повысят сообщения об ошибках к приложению относительно мертвых блокировок.

Вместо этого я предполагаю, что 'что-то' изменилось. Это могли быть блокировки, но одинаково могло случиться так, что у Вас есть намного больше материала, заблокированного, потому что транзакции занимают больше времени (и поэтому блокировки сохранены для дольше).

Если Вы находитесь на 10g/11g с AWR/ASH (Пакет Диагностики/Настройки), OEM должна смочь помочь диагностировать ситуацию.

В противном случае взгляд на V$SESSION и видит, есть ли у Вас много сессий с набором BLOCKING_SESSION. Это указывает, что они ожидают блокировок. Только необходимо волноваться о блокировках, если сессии ожидают на них, так используйте это, а не количество блокировок. Если это не указывает, что проблема снижается до v$session_event и видит, какие wait_class записи ответственны за объем времени.

3
ответ дан 3 December 2019 в 17:29
  • 1
    +1, специально для совета о наблюдении, что ожидает, едят время. –  DCookie 18 September 2009 в 02:15

Это могли быть мертвые блокировки, но базы данных могут обычно говорить, когда существуют мертвые блокировки и уничтожат соединения за исключением мертвой блокировки в этом случае.

Я видел, что это происходит на моей базе данных оракула, и это может произойти, когда ресурсы работают тонкий, и база данных исчерпывает память и должна подкачать к диску.

Это особенно верно, если много заданий все ожидают в очереди того же ресурса к свободному.

1
ответ дан 3 December 2019 в 17:29
  • 1
    " Это особенно верно, если много заданий все ожидают в очереди того же ресурса к свободному " - там любой способ видеть what' s организация очередей и что ресурс it' s ожидающий на? –  jeffspost 18 September 2009 в 16:45

Мертвая блокировка зарегистрирована на файлах трассировки, таким образом, можно легко сказать, является ли это проблемой. Сначала проанализируйте для обычных подозреваемых. Запрос объясняет план, индексы, статистику и такой.

1
ответ дан 3 December 2019 в 17:29

Теги

Похожие вопросы