如何杀死一个会话?
ALTER SYSTEM KILL SESSION 'sid,serial#';
如何查看所有“旧”会话?
SELECT s.SID, s.SERIAL# FROM v$session s WHERE s.LOGON_TIME < (SYSDATE - (1 / 24))
你可以设置一个 的 空闲超时 强> 要么 的 连接超时 强> 在配置文件中,根据需要将该配置文件分配给用户。
从 该 CREATE PROFILE 文件 :
CREATE PROFILE
如果用户超过了 CONNECT_TIME 要么 IDLE_TIME 会话资源限制,然后数据库回滚当前事务并结束会话。当用户进程下一次发出调用时,数据库将返回错误。 [...] CONNECT_TIME :指定会话的总运行时间限制,以分钟为单位。 IDLE_TIME :指定会话期间连续非活动时间的允许时间段,以分钟为单位。长时间运行的查询和其他操作不受此限制。
如果用户超过了 CONNECT_TIME 要么 IDLE_TIME 会话资源限制,然后数据库回滚当前事务并结束会话。当用户进程下一次发出调用时,数据库将返回错误。
CONNECT_TIME
IDLE_TIME
[...]
CONNECT_TIME :指定会话的总运行时间限制,以分钟为单位。
IDLE_TIME :指定会话期间连续非活动时间的允许时间段,以分钟为单位。长时间运行的查询和其他操作不受此限制。
您设置了配置文件并分配给相关用户
这是一个例子:
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;