Oracle中终止会话KILL SESSION

Oracle中终止会话KILL SESSION

 

终止会话:

将例程置于受限模式后,在执行管理任务前可能想终止所有当前用户会话。此操作可通过以下命令来实现:

ALTER SYSTEM KILL SESSION ‘integer1,integer2’

其中:

  • integer1:V$SESSION 视图中的 SID 列的值
  • integer2:V$SESSION 视图中的 SERIAL# 列的值

注:会话 ID 和序列号用来唯一地标识会话。这样,即使用户注销身份并且新会话使用相
同的会话 ID,也可确保 ALTER SYSTEM KILL SESSION 命令能够应用于正确的会话。

终止会话的影响:

ALTER SYSTEM KILL SESSION 命令一执行,将使后台进程 PMON 立即执行以下步骤:

  • 回退用户的当前事务
  • 释放所有当前持有的表或行锁定
  • 释放用户当前保留的所有资源

终止特定实例上的会话

从 Oracle RAC 11gR1 开始,可以使用 ALTER SYSTEM KILL SESSION 语句终止特定实例上的会话。

幻灯片通过以下方式对此进行了说明:在另外一个不同于终止有问题会话的实例上,终止一个已启动的会话。

如果会话正在执行某个必须完成的活动(例如等待来自远程数据库的答复或者回退事务处理)则 Oracle DB 必须等待该活动完成,将该会话标记为“已终止”,然后将控制权返回给您。如果等待持续一段时间,则 Oracle DB 会将该会话标记为“待终止”并将控制权返回给您,同时向您发送一条消息说明会话被标记为“待终止”。然后,PMON 后台进程会在该活动完成后将该会话标记为“已终止”。

注:还可以在 ALTER SYSTEM 命令的末尾使用 IMMEDIATE 子句以便立即终止会话而不等待未完成活动完成。

 

 

SQL> SELECT SID, SERIAL#, INST_ID
  FROM GV$SESSION WHERE USERNAME='JFV';
SID    SERIAL#    INST_ID   
140       3340          2


SQL> ALTER SYSTEM KILL SESSION '140,3340,@2';
System altered.

SQL>


 

 

 


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *