我们的文章会在微信公众号IT民工的龙马人生和博客网站 ( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。
前段写了一篇DBA必备脚本:一键杀会话文章,有朋友反馈部分功能不完善。最近几天根据朋友的建议,将核心的代码做了适当修改,引入了部分新功能和排除了一些高危的进行。脚本的名字如下:
kill_sess_by_where.sql
主要的变动内容如下:
新增kill条件
- 根据SQLID的信息来选择需要kill的session。
- 根据event的信息来选择需要kill的session。
- 根据LAST_CALL_ET条件和非活动的会话来选择需要kill的session。
- 根据登陆时间和非活动的会话来选择需要kill的session。
- 根据登陆服务名来选择需要kill的session。
杀会话的模式
支持disconnect和kill两种方式,模式为disconnect方式,如果需要修改,可自定义修改参数。
排除系统管理用户的会话和后台会话
已经从代码上排除了特殊用户和后台会话,防止kill错误会话。
WHERE s.username NOT IN ('SYSTEM','SYS','SYSMAN','DBSNMP')
and S.USERNAME IS NOT NULL
debug模式
默认在debug模式运行,只打印kill session的命令,可通过修改参数修改默认行为。
常用示例
kill last_call_et大于3600的非活动会话
kill_sess_by_where.sql "lastet=3600"
kill某用户的所有护花
kill_sess_by_where.sql "username=HTZ"
kill特定的sid
kill_sess_by_where.sql "sid=101,102"
脚本的获取方式
关注公众号,后台回复“脚本”二字,已经关注并回复过的就直接下载即可。
——————作者介绍———————–
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)
DBA必备脚本:一键杀会话版本迭代二:等您坐沙发呢!