Вбити мертву сесію
Часто буває так, що втрачено з'єднання сервера з клієнтом. В цьому випадку, якщо сесія перебувала в статусі «ACTIVE», настане момент, коли серверного процесу потрібно буде звернутися до клієнта. І якщо зв'язку з ним не буде, то серверний процес завершується, а фоновий процес PMON очистить займані ресурси. А якщо сесія була в стані 'INACTIVE'? Або сеанс «завис» з якоїсь причини і блокування, які він утримує, заважають працювати іншим клієнтам? Або тайм-аути firewall / router / switch заважають жити з'єднанню клієнта з сервером?
В цьому випадку перше, що можна пробувати виконувати:
ALTER SYSTEM KILL SESSION 'sid, serial #';
ALTER SYSTEM DISCONNECT SESSION 'sid, serial #' IMMEDIATE;
Часто буває так, що втрачено з'єднання сервера з клієнтом.
В цьому випадку, якщо сесія перебувала в статусі «ACTIVE», настане момент,
коли серверного процесу потрібно буде звернутися до клієнта. І якщо зв'язку
з ним не буде, то серверний процес завершується, а фоновий процес
PMON очистить займані ресурси. А якщо сесія була в стані
'INACTIVE'? Або сеанс «завис» з якоїсь причини і блокування, які він
утримує, заважають працювати іншим клієнтам?
Або тайм-аути firewall / router / switch заважають жити з'єднанню клієнта з
В цьому випадку перше, що можна пробувати виконувати:
Де значення sid і serial # можна почерпнути з
Але нажаль! Часто буває так, що сесія набуває
після цього статус 'KILLED' (process = 'PSEUDO') і
позбутися від цієї сесії вдається лише після
перезавантаження. А якщо це не можливо?
Тоді пробуйте наступний варіант:
- Визначимося з нашим мертвим процесом за допомогою
наступного запиту: SELECT p.spid FROM v $ session s,
v $ process p WHERE s.paddr = p.addr;
- Якщо вдалося знайти наш мертвий процес, то видаляємо
його засобами операційної системи. Для LINUX це
реалізується командою KILL -9 spid.
Але і в цьому випадку є підводні камені, наприклад,
не у всіх операційних системах вдається очистити
пам'ять після таких маніпуляцій.
Є ще варіант:
Спробуйте в sqlnet.ora на сервері
встановити параметр SQLNET.EXPIRE_TIME
(Значення в хвилинах).