[20200319]KILL STATUS ='KILLED'的进程.txt --//生产系统例行检查,我发现存在一些STATUS ='KILLED'的会话。 --//看看这些进程如何删除。 1.环境: SYS@ZZZZ/SIDSID> @ ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production SYS@ZZZZ/SIDSID> select paddr,inst_id,SID,S.SERIAL#,status,client_info ,logon_time,CREATOR_ADDR,CREATOR_SERIAL# from gv$session S where STATUS ='KILLED' order by sid; PADDR INST_ID SID SERIAL# STATUS CLIENT_INFO LOGON_TIME CREATOR_ADDR CREATOR_SERIAL# ---------------- ---------- ---------- ---------- -------- -------------------- ------------------- ---------------- --------------- 000000134207A620 1 167 6305 KILLED aaa.bbb.c5.116 2020-03-11 20:22:26 0000001291D9E998 77 000000134207A620 1 1747 12439 KILLED AAA.BBB.C.74 2020-03-10 07:23:33 00000012A1E0DCE0 89 000000134207A620 1 3499 1473 KILLED aaa.bbb.c0.224 2020-03-13 15:40:14 00000012A1DBB418 218 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 000000134207A620 1 5055 15825 KILLED aaa.bbb.c0.224 2020-03-13 10:31:55 00000012B1D5A100 121 000000134207A620 2 6393 11793 KILLED aaa.bbb.c5.116 2020-03-11 20:24:13 00000012D1D47F68 20 000000134207A620 1 6980 3377 KILLED aaa.bbb.c0.224 2020-03-13 10:31:56 00000012B1F37978 122 000000134207A620 1 7261 10139 KILLED aaa.bbb.c5.116 2020-03-11 20:22:25 00000012A1DFC0A8 71 000000134207A620 1 7423 23319 KILLED AAA.BBB.C.74 2020-03-10 07:23:33 00000012A1E32608 215 8 rows selected. --//出现这样的情况PADDR地址指向都已一样的,如果你使用该地址查询视图v$process无法获得spid进程号的。 SYS@ZZZZ/SIDSID> select * from v$process where addr=hextoraw('000000134207A620'); no rows selected --//只能查询使用CREATOR_ADDR查询。 SYS@ZZZZ/SIDSID> select * from v$process where addr=hextoraw('00000012A1DBB418') 2 @ prxx ============================== ADDR : 00000012A1DBB418 PID : 203 SPID : 102216 PNAME : USERNAME : grid SERIAL# : 218 TERMINAL : UNKNOWN PROGRAM : oracle@ZZZZZZZZZZZZZZZZ TRACEID : TRACEFILE : /u01/app/oracle/diag/rdbms/SIDSID/SIDSID1/trace/SIDSID1_ora_102216.trc BACKGROUND : LATCHWAIT : LATCHSPIN : PGA_USED_MEM : 1927126 PGA_ALLOC_MEM : 3231990 PGA_FREEABLE_MEM : 1048576 PGA_MAX_MEM : 5329142 PL/SQL procedure successfully completed. --//奇怪 USERNAME='grid',什么回事。 SELECT s.paddr ,s.inst_id ,s.SID ,S.SERIAL# ,s.status ,s.client_info ,s.logon_time ,s.CREATOR_ADDR ,s.CREATOR_SERIAL# ,p.spid ,p.username FROM gv$session s, gv$process p WHERE s.STATUS = 'KILLED' AND p.addr = s.CREATOR_ADDR AND ( (s.USERNAME IS NOT NULL) AND (NVL (s.osuser, 'x') <> 'SYSTEM') AND (s.TYPE <> 'BACKGROUND')) AND (s.ownerid = 2147483644) AND ( s.module <> 'TOAD background query session' OR s.module IS NULL) AND p.inst_id = s.inst_id; --//我查询发现都是USERNAME='grid'。加入其它条件是抄toad的查询,主要避免下面kill时删除重要进程。 # netstat -tnop 2>/dev/null | grep 102216 tcp 0 0 192.168.100.104:1521 aaa.bbb.c0.224:2549 ESTABLISHED 102216/oracleSIDSID1 keepalive (61.59/0/0) # ps -fp 102216 UID PID PPID C STIME TTY TIME CMD oracle 102216 1 0 Mar13 ? 00:00:00 oracleSIDSID1 (LOCAL=NO) --//说明该进程存在。如果采用原来的方式是不行的。 SYS@ZZZZ/SIDSID> alter system disconnect session 3499,1473 immediate ; alter system disconnect session 3499,1473 immediate * ERROR at line 1: ORA-00026: missing or invalid session ID --//知道进程号直接杀进程就ok了。 SELECT 'kill -9 ' || spid c20, inst_id FROM (SELECT s.paddr ,s.inst_id ,s.SID ,S.SERIAL# ,s.status ,s.client_info ,s.logon_time ,s.CREATOR_ADDR ,s.CREATOR_SERIAL# ,p.spid FROM gv$session s, gv$process p WHERE s.STATUS = 'KILLED' AND p.addr = s.CREATOR_ADDR AND ( (s.USERNAME IS NOT NULL) AND (NVL (s.osuser, 'x') <> 'SYSTEM') AND (s.TYPE <> 'BACKGROUND')) AND (s.ownerid = 2147483644) AND ( s.module <> 'TOAD background query session' OR s.module IS NULL) AND p.inst_id = s.inst_id) order by 2; C20 INST_ID ---------------- ------- kill -9 102216 1 kill -9 77715 1 kill -9 125001 1 kill -9 77731 1 kill -9 92612 1 kill -9 125003 1 kill -9 92620 1 kill -9 60858 2 8 rows selected. --//注意实例号。最后1行是另外一台机器的。先尝试1个进程看看。 # kill -9 102216 # ps -fp 102216 UID PID PPID C STIME TTY TIME CMD # netstat -tnop 2>/dev/null | grep 102216 --//执行前还是建议查看一下。 $ ps -fp 102216,77715,125001,77731,92612,125003,92620 --//然后copy and paste执行以上命令,注意服务器千万别选择错了。一般等2,3秒进程就会消失。我翻了以前笔记以前写成如下: select spid from v$process where addr in(select creator_addr from v$session where status='KILLED'); select 'kill -9 '||spid from v$process where addr in(select creator_addr from v$session where status='KILLED'); --//感觉执行前还是给仔细看看什么进程,贸然操作还是存在一定风险。
[20200319]KILL STATUS ='KILLED'的进程.txt
来源:这里教程网
时间:2026-03-03 15:18:56
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 公益直播|DBA职业发展之路
公益直播|DBA职业发展之路
26-03-03 - Oracle集群软件管理-添加和删除集群节点
Oracle集群软件管理-添加和删除集群节点
26-03-03 - ORACLE 审计目录碎文件过多ORA09925导致sqlplus无法登陆控制台
- 周六直播充电:探究Oracle分区表创建和使用
周六直播充电:探究Oracle分区表创建和使用
26-03-03 - ORA-00742:Log read detects lost writein thread 1 sequence 1202 block 137840
- Oracle 自动化运维-Python表空间邮件预警
Oracle 自动化运维-Python表空间邮件预警
26-03-03 - Relationship Database Design
Relationship Database Design
26-03-03 - 数据库监控---PIGOSS BSM
数据库监控---PIGOSS BSM
26-03-03 - Oracle 自动化运维-Python监控Oracle告警日志
Oracle 自动化运维-Python监控Oracle告警日志
26-03-03 - 审计表AUD$引起system表空间异常增长
审计表AUD$引起system表空间异常增长
26-03-03
