Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Убитые сессии залочили таблицу  [new]
Z
Guest
Собственно, висят 2 сессии со статусом KILLED и держат нужную таблицу. Как освободить таблицу и почему сессии долго висят в этом статусе?
6 июн 08, 11:06    [5768921]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
ZeUsM
Member

Откуда:
Сообщений: 256
Освободить - на сервере запустить orakill (эт утилитка такая) =)
6 июн 08, 11:07    [5768938]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
Z
Guest
Спасибо. Как ею воспользоваться? Это из командной строки или через Энтерпрайз Менеджер Консоль?
6 июн 08, 11:14    [5768998]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
ZeUsM
Member

Откуда:
Сообщений: 256
Z
Спасибо. Как ею воспользоваться? Это из командной строки или через Энтерпрайз Менеджер Консоль?

из командной строки
orakill ORCL92 4760
первый параметр SID второй номер сессии
6 июн 08, 11:17    [5769017]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
Nadr_
Member

Откуда:
Сообщений: 110
ZeUsM
Z
Спасибо. Как ею воспользоваться? Это из командной строки или через Энтерпрайз Менеджер Консоль?

из командной строки
orakill ORCL92 4760
первый параметр SID второй номер сессии


На oracle 9.2.0.7 нет команды orakill, как удалить ?
18 июн 08, 11:20    [5813846]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
Ну мы же все знаем, какая у тебя ось...
18 июн 08, 11:21    [5813868]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
z
Guest
Вячеслав Любомудров
Ну мы же все знаем, какая у тебя ось...


Unix
18 июн 08, 11:27    [5813913]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
Там есть kill
Номер процесса (если он не помер) можно найти в v$process
А если помер, ждать
18 июн 08, 11:30    [5813943]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
z
Guest
Вячеслав Любомудров
Там есть kill
Номер процесса (если он не помер) можно найти в v$process
А если помер, ждать


Процесс помер, а сессия висит.
18 июн 08, 11:31    [5813952]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
semenar
Member

Откуда: Днепропетровск
Сообщений: 3308
Блог
z
Вячеслав Любомудров
Там есть kill
Номер процесса (если он не помер) можно найти в v$process
А если помер, ждать


Процесс помер, а сессия висит.

Тебе же сказали
Вячеслав Любомудров
А если помер, ждать
18 июн 08, 11:38    [5814036]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
z
Guest
некогда ждать - работа стоит.

Что ещё можно сделать для ускорения?
18 июн 08, 11:41    [5814063]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
Передернуть экземпляр
18 июн 08, 11:43    [5814087]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
z
Guest
неподходит.

Я кстати знаю один законный вариант, который описан в доке.
18 июн 08, 11:46    [5814106]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
Viewer
Member

Откуда: Самара
Сообщений: 5369
Этот запрос что нибудь возвращает ?
SELECT 'kill -9 '||spid kill_txt
  FROM v$process p
 WHERE NOT EXISTS (SELECT 1
                     FROM v$session s
                    WHERE s.paddr = p.addr) AND spid IS NOT NULL
18 июн 08, 11:52    [5814181]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
z
Guest
Viewer
Этот запрос что нибудь возвращает ?
SELECT 'kill -9 '||spid kill_txt
  FROM v$process p
 WHERE NOT EXISTS (SELECT 1
                     FROM v$session s
                    WHERE s.paddr = p.addr) AND spid IS NOT NULL



нет, так процесса в OC уже нет
18 июн 08, 11:54    [5814192]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
z
неподходит.

Я кстати знаю один законный вариант, который описан в доке.
Ну дык поделись
Только если ты про alter system disconnect session ... immediate, то это не спасает
А DCD уже поздно
18 июн 08, 12:04    [5814286]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
х.з.
Member

Откуда:
Сообщений: 765
z
нет, так процесса в OC уже нет

он есть, просто оракл его "вычеркнул из памяти"

Ну дык поделись

не в доке, но методом исключений из всех юниксовых процессов инстанса, тех о которых есть записи в v$process
18 июн 08, 12:12    [5814363]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
z
Guest
х.з.
z
нет, так процесса в OC уже нет

он есть, просто оракл его "вычеркнул из памяти"

Ну дык поделись

не в доке, но методом исключений из всех юниксовых процессов инстанса, тех о которых есть записи в v$process


не, ты не понял. OS PID его известен. Процесса нет не только в Oracle, но и в OS.
18 июн 08, 12:35    [5814573]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
z
Guest
Вячеслав Любомудров
z
неподходит.

Я кстати знаю один законный вариант, который описан в доке.
Ну дык поделись
Только если ты про alter system disconnect session ... immediate, то это не спасает
А DCD уже поздно



Согласно доке, сессия "убъётся" после того как клиент попытается в своей убитой сессии, что то выполнить и получит сообщение. После чего она окончательно завершится.

Звоним человеку - просим закрыть приложение. Сессия закрывается.

Не всегда это возможно конечно, но иногда спасет.
18 июн 08, 12:39    [5814610]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
wildwind
Member

Откуда: Москва
Сообщений: 1296
z
Звоним человеку - просим закрыть приложение. Сессия закрывается.

IMHO это не ваш случай. У вас "сессия держит таблицу", значит идет rollback. И может вам лучше чтобы он таки завершился.
18 июн 08, 13:35    [5815057]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
z
Guest
Не факт.

Я могу заблокировать таблицу и находится в состоянии SQL Net message from client.
18 июн 08, 13:43    [5815123]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
wildwind
Member

Откуда: Москва
Сообщений: 1296
z
Не факт.
Я могу заблокировать таблицу и находится в состоянии SQL Net message from client.

Проверил только что. При убивании неактивной сессии блокировки снимаются (вместе с процессом IMHO).
18 июн 08, 15:04    [5815729]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
z
Guest
wildwind
z
Не факт.
Я могу заблокировать таблицу и находится в состоянии SQL Net message from client.

Проверил только что. При убивании неактивной сессии блокировки снимаются (вместе с процессом IMHO).


а ты убил серверный процесс или клиенткий процесс?
18 июн 08, 15:23    [5815919]     Ответить | Цитировать Сообщить модератору
 Re: Убитые сессии залочили таблицу  [new]
wildwind
Member

Откуда: Москва
Сообщений: 1296
z
а ты убил серверный процесс или клиенткий процесс?

Убил сессию. Серверный процесс завершился нормально.
У тебя, видимо, серверный процесс убит нештатно, значит PMON делает rollback.
18 июн 08, 15:54    [5816165]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить