oracle

alter system kill session 'sid,serial#' immed; (根据v$session中查出sid和serial#进行替换)

这里提供一个常用脚本,支持跨实例kill会话 (替换&1条件或放到脚本@调用都行)

select 'alter system kill session '''||sid||','||serial#||decode(inst_id,1,',@1',2,',@2')||''' immediate -- '||username||'@'||machine||' ('||program||');'from gv$session where &1 and sid != (select sid from v$mystat where rownum = 1) ;

操作系统层kill

ps -ef |grep LOCAL=NO|grep -v grep|awk '{print $2}'|xargs kill -9

mysql

根据processlist中ID直接kill

kill **;

批量kill


SELECT CONCAT('kill ',id,';') FROM information_schema.PROCESSLIST where db='mysql';

操作系统中操作(要求登录到数据库主机)

杀掉当前所有的MySQL连接
mysqladmin -uroot -p processlist|awk -F "|" '{print $2}'|xargs -n 1 mysqladmin -uroot -p kill
杀掉指定用户运行的连接,这里为Mike
# 假定kill掉所有ZZZ用户的线程

mysqladmin -uroot -p processlist|awk -F "|" '{if($3 == "Mike")print $2}'|xargs -n 1 mysqladmin -uroot -p kill

postgresql

删除进程有两个内置函数
1.pg_cancel_backend(pid)

2.pg_terminate_backend(pid)

第一个函数只对取消查询操作有效,第二个则等同于OS的kill pid

批量kill会话

select pg_terminate_backend(pid) from pg_stat_activity where pid <> pg_backend_pid() and datname='mydb' and application_name='psql';

操作系统层批量kill

 ps -ef|grep postgres|grep idle |awk '{print $2}' | xargs kill

openGauss

语法格式

ALTER SYSTEM KILL SESSION 'session_sid, serial' [ IMMEDIATE ];

参数说明

  • session_sid, serial

    会话的SID和SERIAL(获取方法请参考示例)。

  • IMMEDIATE

    表明会话将在命令执行后立即结束。

--查询会话信息。
postgres=#
SELECT sa.sessionid AS sid,0::integer AS serial#,ad.rolname AS username FROM pg_stat_get_activity(NULL) AS saLEFT JOIN pg_authid ad ON(sa.usesysid = ad.oid)WHERE sa.application_name <> 'JobScheduler';



--结束SID为140131075880720的会话。
postgres=# ALTER SYSTEM KILL SESSION '140131075880720,0' IMMEDIATE;

pg_stat_get_activity(null)获取的是PG视图pg_stat_activity的信息但看起来没获取全

我只试验了使用application_name可以过滤

SELECT sa.sessionid AS sid,0::integer AS serial#,ad.rolname AS username FROM pg_stat_get_activity(NULL) AS saLEFT JOIN pg_authid ad ON(sa.usesysid = ad.oid)WHERE sa.application_name <> 'JobScheduler' and application_name='gsql';

操作系统层批量kill

 ps -ef|grep postgres|grep -v grep |awk '{print $2}' | xargs kill

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐