Принудительное завершение сеансов Oracle (ALTER SYSTEM KILL SESSION)
15 марта 2011 Без комментариев
Скрипт выборки зависших сеансов. Значения подставляйте, те которые Вам необходимы. В моем случае небольшое ограничение по времени и сессии всех пользователей кроме пользователя SYS.
SELECT v.SID, v.SERIAL# serial, w.SECONDS_IN_WAIT FROM v$session_wait w, v$session v WHERE v.STATUS IN ('ACTIVE') AND nvl(v.SCHEMANAME,'xx')!='SYS' AND v.LAST_CALL_ET > 3600 AND w.SECONDS_IN_WAIT > 115500 AND w.SID = v.sid;
Завершить сеансы можно SQL предложением ALTER SYSTEM KILL SESSION.
Полученные значения SID и SERIAL# указываются в SQL предложении:
ALTER SYSTEM KILL SESSION 'sid,serial#';
Например, для завершения сеанса пользователя TEST1 SQL предложение будет выглядеть так:
ALTER SYSTEM KILL SESSION '671, 26498';
В некоторых ситуациях процесс oracle не может быть завершен немедленно. В таких случаях сеанс помечается на прерывание. И будет уничтожен, как только будет возможно.
ALTER SYSTEM KILL SESSION является самым безопасным способом прекращения сеанса Oracle.
В oracle есть возможность завершить сеанс форсировано, добавлением ключевого слова IMMEDIATE:
ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;
Например, для завершения сеанса пользователя TEST1 из вышеприведенного примера, команда будет выглядеть так:
ALTER SYSTEM KILL SESSION '671, 26498' IMMEDIATE;
Другие записи:
Возможно Вам будет интересно:
Добавить комментарий
Меня зовут Дмитрий Максютин, с 2005 года я создаю сайты и занимаюсь их продвижением и раскруткой.
Последние комментарии