千家信息网

oracle怎么快速清理kill会话

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容主要讲解"oracle怎么快速清理kill会话",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"oracle怎么快速清理kill会话"吧!今天开发反馈
千家信息网最后更新 2026年10月31日oracle怎么快速清理kill会话

本篇内容主要讲解"oracle怎么快速清理kill会话",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"oracle怎么快速清理kill会话"吧!

今天开发反馈说,执行某个程序update的时候hang住,查看了一下是个小表,只有3000多行数据。第一反应是有锁,把该实例的所有session kill后,执行update还是hang住,单独执行了下where条件后面的select很快。于是觉得应该是在2节点上还有lock,于是执行查询:

select * from gv$lock where id1=383105;

SQL> select * from gv$lock where id1=383105;

INST_ID ADDR KADDR SID TYPE ID1 ID2 LMODE REQUEST CTIME BLOCK
-------------- -------- ---------- --------- -------- --------- --------- ---------- -------------- ---------- ----------
2 0000000110AF61B0 0000000110AF6210 1333 TM 383105 0 3 0 6819 2

果然,2节点上还有一个session持有锁。

连接到2节点,执行查询:

SQL> select sid,serial#,osuser from v$session where sid=1333;

SID SERIAL# OSUSER
--------- -------------- ------------------------------
1333 22559 6005821

alter system kill session '1333,22559';

杀了会话后,再查询,发现1333的session还存在:

SQL> select sid,serial#,osuser from v$session where sid=1333;

SID SERIAL# OSUSER
--------- -------------- ------------------------------
1333 22559 6005821

于是想从系统层kill,可是通过以下sql查询不到1333的spid

select p.pid,p.spid,s.sid,s.serial# from v$process p,v$session s where s.paddr=p.addr and s.sid=1333;

查询后发现,当在Oracle中kill session以后, Oracle只是简单的把相关session的paddr 指向同一个虚拟地址.此时v$process和v$session失去关联,进程就此中断。 然后Oracle就等待PMON去清除这些Session.所以通常等待一个被标记为Killed的Session退出需要花费很长的时间. 如果此时被Kill的process,重新尝试执行任务,那么马上会收到进程中断的提示,process退出,此时Oracle会立即启动PMON 来清除该session.这被作为一次异常中断处理.

根据以下sql找到之前的paddr:

select p.addr from v$process p where pid <> 1
minus
select s.paddr from v$session s;

07000107C8C050F8
07000107DCC19D88

根据v$process的addr找到spid:

select * from v$process where addr in ('07000107C8C050F8','07000107DCC19D88');

然后找到系统进程号,杀掉就好了。由于部分过程没有保留下执行结果,就只有记录下sql了。

oracle@cq2:] ps -ef|grep 8847870
oracle 8847870 1 3 Aug 06 - 734:23 ora_pz99_CQRPT2
oracle 10420652 13107576 0 11:11:01 pts/1 0:00 grep 8847870
[oracle@cq2:] ps -ef|grep 14221746
oracle 12583324 13107576 0 11:11:22 pts/1 0:00 grep 14221746
oracle 14221746 1 0 08:16:07 - 0:04 oracleCQRPT2 (LOCAL=NO)
[oracle@cq2:] kill -9 14221746
[oracle@cq2:] ps -ef|grep 14221746
oracle 12583046 13107576 0 11:12:11 pts/1 0:00 grep 14221746

到此,相信大家对"oracle怎么快速清理kill会话"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

查询 节点 进程 内容 只有 系统 学习 实用 更深 任务 兴趣 只是 地址 实例 实用性 实际 很快 指向 操作简单 数据 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会 蓝思科技飞鸽互联网 互联网科技行业发展 互联网通讯科技 河南真二互联网科技有限公司 金诺互联网科技 深圳齐家互联网科技 腾讯科技 互联网女皇 互联网科技网站 卓越科技互联网 招聘 央行互联网金融科技公司 湖南诚度互联网科技有限公司 互联网科技项目计划书材料类 速维有品互联网信息科技(苏州)有限公司 深圳市罗太互联网科技有限公司 中天科技中国工业互联网 江苏互联网智能科技软件 马化腾互联网科技教学 互联网企业和网络科技有限公司 互联网科技创业有什么好项目 互联网科技工作委员会主任 互联网科技英文 互联网科技小贷 互联网养老 桔豆科技 湖南诚度互联网科技有限公司 中和天地互联网科技有限公司 科技互联网海报 互联网第三次科技革命特征 山东蛋芒互联网科技有限公司 上海旺乐尼互联网科技有限公司
0