暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
【精品篇】如何安全快速的批量删除Oracle数据库外部会话session
830
4页
8次
2020-01-07
5墨值下载
【前言】
有些时候,我们需要删除
Oracle
数据库中的一些会话连接,手动
kill session
low
,费
力易出错,有没有更好的方法,最好一条指令就可以搞定,本文针对此话题畅谈下。
ORACLE
数据库杀掉会话进程有三种方式:
1
ALTER SYSTEM KILL SESSION
关于
KILL SESSION Clause
,如下官方文档描述所示,
alter system kill session
实际
上不是真正的杀死会话,它只是将会话标记为终止。等待
PMON
进程来清除会话。

 
 !
"# !"$"$
"%&$'
()""*
(+"",-.
(#"*"$
/ !0*12%&
""$"
"*$"
 "$
*
$ 34
$
5*
1

可以使用如下方式来快速回滚事物、释放会话的相关锁、立即返回当前会话的控制权。
sql> ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE
Specify IMMEDIATE to instruct Oracle Database to roll back ongoing
transactions, release all session locks, recover the entire session state, and
return control to you immediately.
2
ALTER SYSTEM DISCONNECT SESSION
ALTER SYSTEM DISCONNECT SESSION
杀掉专用服务器
(DEDICATED SERVER)
或共
享服务器的连接会话,它等价于从操作系统杀掉进程。它有两个选项
POST_TRANSACTION
IMMEDIATE
, 其中
POST_TRANSACTION
表示等待事务完成
后断开会话,
IMMEDIATE
表示中断会话,立即回滚事务。
SQL> ALTER SYSTEM DISCONNECT SESSION 'sid,serial#' POST_TRANSACTION;
SQL> ALTER SYSTEM DISCONNECT SESSION 'sid,serial#' IMMEDIATE;
3
KILL -9 SPID
Linux
) 或
orakill ORACLE_SID spid
 (
Windows
可以使用下面
SQL
语句找到对应的操作系统进程
SPID
,然后杀掉。当然杀掉操作系统进
程是一件危险的事情,尤其不要误杀。所以在执行前,一定要谨慎确认。
SET LINESIZE 100
COLUMN spid FORMAT A10
COLUMN username FORMAT A10
COLUMN program FORMAT A45
SELECT s.inst_id,
s.sid,
s.serial#,
p.spid,
s.username,
s.program
FROM gv$session s
JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id
WHERE s.type != 'BACKGROUND';
在数据库如果要彻底杀掉一个会话,尤其是大事务会话,最好是使用两种方式:
1.
使用
ALTER SYSTEM DISCONNECT SESSION IMMEDIATE
2. OS
层操作,使用下面步骤:
1
:首先在操作系统级别
Kill
掉进程。
2
:在数据库内部
KILL SESSION
或者反过来亦可。这样可以快速终止进程,释放资源。
针对方法
1
,可以使用如下
#oracle
中批处理删除外部连接
session
SET LINESIZE 100
COLUMN spid FORMAT A10
COLUMN username FORMAT A10
COLUMN program FORMAT A45
declare cursor mycur is
SELECT s.inst_id,
s.sid,
s.serial#,
p.spid,
s.username,
of 4
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜