当前位置: 首页 > 工具 > 正文

我们的文章会在微信公众号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必备脚本:一键杀会话版本迭代二:等您坐沙发呢!

发表评论

gravatar

? razz sad evil ! smile oops grin eek shock ??? cool lol mad twisted roll wink idea arrow neutral cry mrgreen

快捷键:Ctrl+Enter