как убить активные сессии оракула автоматически - PullRequest
0 голосов
/ 04 февраля 2019

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

Ответы [ 3 ]

0 голосов
/ 04 февраля 2019

Вы можете просто установить время ожидания простоя или время ожидания соединения в профиле и назначить этот профиль пользователям по мере необходимости.

Из the CREATE PROFILE документация :

Если пользователь превышает ограничение ресурса сеанса CONNECT_TIME или IDLE_TIME, база данных откатывает текущую транзакцию и завершает сеанс.Когда пользовательский процесс в следующий раз выполняет вызов, база данных возвращает ошибку.

[...]

CONNECT_TIME: укажите общее время, прошедшее для сеанса, выраженное в минутах.

IDLE_TIME: укажите допустимые периоды непрерывного неактивного времени в течение сеанса, выраженные в минутах.Длительные запросы и другие операции не подпадают под это ограничение.

0 голосов
/ 04 февраля 2019

Вы настраиваете профиль и назначаете нужному пользователю

, вот пример:

alter system set resource_limit=true scope=both;

create profile restrictive limit
   connect_time 60
   sessions_per_user 2
   ldle_time 30;

ALTER USER scott PROFILE restrictive;
0 голосов
/ 04 февраля 2019

Как убить сеанс?

ALTER SYSTEM KILL SESSION 'sid,serial#';

Как просмотреть все "старые" сеансы?

SELECT s.SID,
       s.SERIAL#
  FROM v$session s
 WHERE s.LOGON_TIME < (SYSDATE - (1 / 24))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...