alter system kill session语句详解(19C增加了新特性)

alter system kill session语句详解(19C增加了新特性)

ALTER SYSTEM KILL SESSION 会将一个会话标记为终止,回滚其正在进行的事务,释放所有会话锁,并部分回收会话资源。

你可以使用 GV$SESSION 视图中的以下值来标识会话:

  • session_id:指定 SID 列的值。
  • serial_number:指定 SERIAL# 列的值。
  • instance_id(可选):指定目标会话所在实例的 ID。

不指定实例ID的情况下,kill session的会话和目标会话必须位于同一个实例上。例如:

alter system kill session 'SID,SERIAL#' immediate;
/*示例*/
alter system kill session '123,456' immediate;

指定实例ID的情况下,kill session的会话可以位于任一个实例上(推荐)。例如:

alter system kill session 'SID,SERIAL#,instance_id' immediate;
/*示例*/
alter system kill session '123,456,@1' immediate;


会话终止行为说明

如果会话正在执行某些必须完成的操作,例如等待远程数据库(dblink)的响应或回滚事务,Oracle 数据库会等待该操作完成,然后将会话标记为终止,并将控制权返回给你。

如果等待时间超过一分钟,Oracle 会将该会话标记为“待终止”,并立即返回控制权,同时提示你该会话已被标记为终止。随后,PMON 后台进程会在活动完成后将该会话正式标记为终止。

无论会话是否有正在进行的事务,Oracle 不会完全回收会话状态,直到该会话的用户发出请求并收到“会话已终止”的消息。


可选修饰符

IMMEDIATE

指定 IMMEDIATE 以指示 Oracle 数据库立即回滚正在进行的事务、释放所有会话锁、完全回收会话状态,并立即将控制权返回给你。

注意:只有在未指定 TIMEOUT 的情况下,IMMEDIATE 才会立即返回控制权。

IMMEDIATE 的行为类似于未加修饰符的终止操作:它会等待当前活动完成,完成后立即删除整个会话,无需等待用户再次请求,连接也会被关闭。


FORCE(19C的新修饰符)

FORCEIMMEDIATE 类似,但如果发生超时,FORCE强制终止连接

示例:

ALTER SYSTEM KILL SESSION '123,456' FORCE;
IMMEDIATE与FORCE的对比
时间点… KILL SESSION '123,456' IMMEDIATE;… KILL SESSION '123,456' FORCE;
T0会话被标记为 KILLED,开始回滚事务同左
T1如果有大事务,继续等回滚客户端 socket 仍然 ESTABLISHED同左,但立刻发 SIGKILL / TerminateThread
T2回滚完成后才关闭 socket,客户端此时才拿到 ORA-00028客户端瞬间拿到 ORA-03113(断网),socket 消失
T3V$SESSION 要到回滚结束才清空V$SESSION 几乎立刻消失(PMON 后续慢清资源)
默认超时0 秒(不再额外等 60 s)5 秒(可 TIMEOUT n 覆盖)
使用force

在这里插入图片描述

alert日志
在这里插入图片描述

使用immediate

会多一个标记要终止会话的提示
在这里插入图片描述
在这里插入图片描述
alert日志
在这里插入图片描述


TIMEOUT(19C的新修饰符)

指定 TIMEOUT 以设置终止会话前的最大等待时间(单位:秒)。它会覆盖默认超时时间。

当前默认超时值如下:

修饰符默认超时时间
无修饰符60 秒
IMMEDIATE0 秒
FORCE5 秒

注意:超时时的行为取决于修饰符:

  • IMMEDIATE:标记会话为终止。
  • FORCE:强制终止会话。

示例:

ALTER SYSTEM KILL SESSION '123,456' TIMEOUT 20;

在这里插入图片描述
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值