Как отключить конкретную сессию в Oracle

oracle

Всем привет, в данном посте хочу рассказать как отключить конкретную сессию в Oracle.

1) Выполнить запрос SELECT и посмотреть текущие сессии.

select t.SID, t.SERIAL#, t.osuser as "User", t.MACHINE as "PC", t.PROGRAM as "Program"
from v$session t
--where (NLS_LOWER(t.PROGRAM) = 'cashreg.exe') -- посмотреть сессии от программы cashreg.exe
--where status='ACTIVE' and osuser!='SYSTEM' -- посмотреть пользовательские сессии
--where username = 'схема' -- посмотреть сессии к схеме (пользователь)
order by 4 asc;

2) Заменить 'SID,Serial#' на 'SID,Serial#' полученных из запроса SELECT

ALTER SYSTEM KILL SESSION 'SID,Serial#' IMMEDIATE;

Как убить все сессии к схеме Oracle

/* 
This script terminates all connections to the user schema. Username must be specified in the script before execution.
The sessions may exist in the "KILLED" state while the transactions roll back

*/

define USERNAME = SCOTT

begin 
for i in (select SID, SERIAL# from V$SESSION where USERNAME = upper('&&USERNAME')) loop 
execute immediate 'alter system kill session '''||i.SID||','||i.SERIAL#||''' immediate';
end loop;
end;
/

Оцените статью
Настройка серверов windows и linux
Добавить комментарий