Oracle杀会话回滚时间长处理办法

Oracle杀会话回滚时间长处理办法

获取被KILL会话的SID:

sql 复制代码
set line 200 pages 1000
col event for a30
col program for a35
col username for a10
col exec_time for 9999999999
col sql_id for a15
col machine for a30
col ssid for a13
col state for a20
col status for a10
select inst_id||':'||sid||','||serial# ssid,username,sql_id,sql_exec_id,event,
substr(program,1,25) program,machine,state,last_call_et exec_time,status 
from gv$session 
where wait_class<>'Idle' and username is not null 
order by last_call_et;

...
1:633,52377   APPUSER   13bqm6vvsn5s6	 db file sequential read	 sqlplus@etlhost (TNS V1-V3)	etlhost	   WAITING	243509  KILLED

注意最后一列状态为KILLED。

获取被KILL会话对应的操作系统进程号PID:

sql 复制代码
select spid from v$process 
where addr in (select paddr 
from v$session 
where username='APPUSER' and sid=633);

SPID
------------------------
273322

--或者
select spid from v$process 
where addr in (select creator_addr 
from v$session 
where username='APPUSER' and status='KILLED');

或者:

sql 复制代码
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' 
and s.username='APPUSER';

   INST_ID	  SID	 SERIAL# SPID	    USERNAME   PROGRAM
---------- ---------- ---------- ---------- ---------- ---------------------------------------------
	 1	  633	   52377 273322     APPUSER    sqlplus@etlhost (TNS V1-V3)
	 1	  722	    1331 104848     APPUSER    sqlplus@etlhost (TNS V1-V3)
	 1	  777	   64051 104254     APPUSER    sqlplus@etlhost (TNS V1-V3)
	 1	  938	   51475 104793     APPUSER    sqlplus@etlhost (TNS V1-V3)
	 1	 1101	   55005 161435     APPUSER    plsqldev.exe
	 1	 1172	   21141 101804     APPUSER    sqlplus@etlhost (TNS V1-V3)
	 1	 2036	   42029 161411     APPUSER    plsqldev.exe

7 rows selected.

操作系统层面杀掉对应连接:

bash 复制代码
[oracle@dbhost ~]$ ps -ef | grep oracle | grep LOCAL | grep 273322
oracle   273322      1 28 Oct15 ?        19:25:50 oracleorcldb (LOCAL=NO)

[oracle@dbhost ~]$ kill -9 273322

References

1 https://blog.51cto.com/u_13631369/6251425

相关推荐
做运维的阿瑞3 分钟前
一个 NULL 让整列姓名消失?MySQL 字符串与日期函数复盘
数据库·sql·mysql
程序猿乐锅14 分钟前
【黑马点评 | 第十一篇】关注 Feed 流实现
java·数据库·redis·分布式·后端·缓存·maven
phltxy21 分钟前
C 语言文件操作:让数据从内存走向持久化
c语言·网络·数据库
阳光九叶草LXGZXJ1 小时前
达梦数据库-学习-69-DM9主备集群部署
linux·运维·服务器·数据库·sql·学习
jnrjian1 小时前
Connect Microsoft Tools to Oracle Databases powerbi 之类的oracle 客户端
数据库·microsoft·oracle
北京恒星科通刘军1 小时前
灾害监测预警系统中,应急疏散广播的“应急叫应”实际送达率与有效性研究
网络·数据库·人工智能
ShineWinsu1 小时前
对于Redis:List类型的解析
数据库·c++·redis·链表·缓存·面试·list
问商十三载1 小时前
AI引擎生成式优化服务商怎么选?技术核验清单(附脚本)
数据库·人工智能·机器学习
TDengine (老段)1 小时前
集群从“能用“到“高可用“:副本、选主与故障切换到底怎么配
大数据·网络·数据库·物联网·oracle·时序数据库·tdengine
ly76891 小时前
ISR 收缩与 HW 推进:副本同步的边界条件与 UnderReplicated 排障
数据库·kafka·c#·linq·isr·hw·副本同步