实现批量Kill Oracle会话进程

简介: 有时业务DML高并发操作会导致表出现很多锁的情况,甚至需要登录服务器kill进程才能完全解锁,此时就需要能够批量Kill Oracle会话进程的脚本,来减轻操作的压力。

查询某个用户会话 :

select username,sid,serial# from v$session t where upper(t.username) = 'test';

查系统中表空间用户占用的进程 :

select p.spid,s.sid,s.serial# FROM v$session s,v$process p WHERE p.addr=s.paddr and upper(s.username) = 'test';

删除单个用户会话进程:

alter system kill session 'sid,serial#';
如果使用alter kill杀不掉用户会话,则需要在系统执行kill -9命令将其杀掉。

批量生成KILL会话的SQL语句:

SELECT 'alter system kill session ''' || ta.sid || ',' || ta.serial# || ''';',

   'alter system disconnect session ''' || ta.sid || ',' || ta.serial# || ''' immediate;',
   'host orakill ' || tc.instance_name || ' ' || tb.spid,
   'kill -9 ' || tb.spid,
   tb.spid,
   ta.osuser,
   tb.program,
   ta.terminal,
   ta.program

FROM v$session ta, v$process tb, v$instance tc
WHERE tb.addr = ta.paddr
AND ta.sid = &yoursid;

相关文章
|
3月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 向进程发送信号 kill命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 向进程发送信号 kill命令 使用指南
57 0
|
25天前
|
SQL Oracle 关系型数据库
关系型数据库Oracle结束 RMAN 会话:
【7月更文挑战第25天】
35 1
|
1月前
|
SQL Oracle 关系型数据库
|
2月前
|
Linux 数据处理
深入了解Linux命令kill:终止进程的艺术
**Linux的`kill`命令详解:高效管理进程的工具** `kill`命令在Linux中用于向进程发送信号,如SIGTERM(默认)和SIGKILL,以终止或影响进程行为。它通过进程ID(PID)操作,支持多种信号和选项,如`-l`列出信号,`-9`强制杀进程。例如,`kill 1234`发送TERM信号,`kill -9 1234`发送KILL信号。使用时注意,SIGKILL是不可忽视的,可能导致数据丢失。配合`pgrep`和`pkill`能更灵活管理进程。了解进程依赖和使用其他命令如`ps`和`top`可优化系统资源管理。
|
3月前
|
Shell Linux 开发工具
linux shell脚本利用 kill -0 检查进程是否存在
linux shell脚本利用 kill -0 检查进程是否存在
109 1
|
3月前
|
Web App开发
kill 终止进程
kill 终止进程。
38 7
|
3月前
|
SQL Oracle 关系型数据库
Oracle SQL*Plus的SET命令:你的数据库会话“调色板”
【4月更文挑战第19天】Oracle SQL*Plus的SET命令是数据库会话的“调色板”,用于设置输出格式、反馈信息和各种偏好。它能调整PAGESIZE和LINESIZE以优化显示,控制ECHO和FEEDBACK开关以定制反馈,以及统计命令执行时间(TIMING)和调试SQL(VERIFY)。更高级的选项如HEADING和COLSEP可改善输出的可读性。通过灵活运用SET命令,能提升工作效率和体验,是数据库管理员和开发者的必备工具。
|
3月前
|
SQL 监控 Oracle
oracle阻塞会话与kill
oracle阻塞会话与kill
|
3月前
|
Shell Linux
Linux脚本Shell脚本来实现一次性kill多个端口的进程
Linux脚本Shell脚本来实现一次性kill多个端口的进程
32 0
|
3月前
|
监控 Unix 调度
进程终结之道:kill与pskill的神奇战斗
进程终结之道:kill与pskill的神奇战斗
62 0