我的编程空间,编程开发者的网络收藏夹
学习永远不晚

oracle 11g自动杀锁脚本怎么编写

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

oracle 11g自动杀锁脚本怎么编写

今天就跟大家聊聊有关oracle 11g自动杀锁脚本怎么编写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

最近临近春节,客户的一套11gRAC下午经常会出现锁,开发人员都回家了无法修改逻辑。为了避免过年期间因为这个每天都播vpn处理,所以赶忙写了一个自动杀锁的脚本。
这个脚本有几点需要注意的:
1.针对于linux系统
2.oracle 11g单实例和RAC都可以
3.考虑到了active的锁不能杀
4.有的锁的锁源会是一些系统进程,担心杀掉以后库会直接宕掉,脚本也考虑到了这一点。
5.客户这台服务器上有两套RAC,为了安全起见,sqlplus前我都export了一下环境变量。

可以把这这个脚本发给值班室的兄弟们,出现了锁跑一下,也可以写到crontab里面。


#!/bin/bash
#get lock infomation
export ORACLE_SID=ogg1
sqlplus -s "/as sysdba" <<eof
spool /home/oracle/killholder_tmp.sql
select 'alter system kill session ''' || s.SID || ',' || s.SERIAL# || ',@' ||
       s.INST_ID || ''' immediate;' killsql
  from gv\$lock l, gv\$session s
where (id1, id2, l.type) in
       (select id1, id2, type from gv\$lock where request > 0)
   and l.sid = s.sid
   and l.inst_id = s.inst_id
   and s.status='INACTIVE'
   and s.type='USER'
   and decode(request, 0, 'Holder:', ' Waiter:') = 'Holder:'
order by id1, ctime desc, request;
spool off
exit
eof

#kill the lock holder
more /home/oracle/killholder_tmp.sql |grep '^a' > /home/oracle/killholder.sql
export ORACLE_SID=ogg1
sqlplus -s "/as sysdba" <<eof
@/home/oracle/killholder.sql
exit
eof

#check lock again
export ORACLE_SID=ogg1
sqlplus -s "/as sysdba" <<eof
spool /home/oracle/event.txt
select inst_id, event#, event,count(*) from gv\$session
where wait_class# <> 6
group by inst_id, event#,event
order by 1,4 desc;
spool off
exit
eof
TXLOCKNUM=$(more /home/oracle/event.txt|grep 'TX'|wc -l)
TMLOCKNUM=$(more /home/oracle/event.txt|grep 'TM'|wc -l)
if [ $TXLOCKNUM -eq 0 ] && [ $TMLOCKNUM -eq 0  ]
then
        echo "there is no lock!"
else
        echo "there is still having lock! "
fi

看完上述内容,你们对oracle 11g自动杀锁脚本怎么编写有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

oracle 11g自动杀锁脚本怎么编写

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何编写自动杀掉占用较多CPU资源的Shell脚本

本篇内容主要讲解“如何编写自动杀掉占用较多CPU资源的Shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何编写自动杀掉占用较多CPU资源的Shell脚本”吧!代码如下:#!/bin/
2023-06-09

python自动打卡脚本怎么写

编写一个Python自动打卡脚本可以参考以下步骤:1. 导入所需的库:`requests`用于发送HTTP请求,`time`用于设置延迟时间。2. 创建一个函数来发送打卡请求。该函数可以接受登录信息和打卡参数作为参数,并使用`request
2023-08-17

这怎么在SQL Server编写一个自动备份脚本

本篇文章为大家展示了这怎么在SQL Server编写一个自动备份脚本,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 创建SQL脚本新建db_backup.sql文件,填入以下内容。-- 定义需要
2023-06-14

Linux开机自动启动的脚本怎么写

这篇文章的内容主要围绕Linux开机自动启动的脚本怎么写进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!一、在/etc/rc.local中添加 如果不
2023-06-28

怎么用java写自动化测试脚本

使用Java编写自动化测试脚本可以通过以下步骤进行:1. 确定测试框架:选择一个适合的测试框架,比如JUnit、TestNG等。这些框架提供了一些基本的测试功能和断言方法,方便进行测试。2. 配置测试环境:配置测试环境包括设置测试数据、测试
2023-10-10

使用python怎么编写一个自动生成sql语句的脚本

这篇文章主要介绍了使用python怎么编写一个自动生成sql语句的脚本,此处通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:python是什么意思Python是一种跨平台的、具有解释性、编译性、
2023-06-06

Linux中python自启动和定时启动脚本怎么写

这篇“Linux中python自启动和定时启动脚本怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux中pytho
2023-06-28

怎么在Linux中使用expect命令编写一个自动化交互脚本

怎么在Linux中使用expect命令编写一个自动化交互脚本?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。expect 是建立在工具控制语言(Tool Control La
2023-06-09

docker制作mysql镜像并自动安装脚本怎么写

本文小编为大家详细介绍“docker制作mysql镜像并自动安装脚本怎么写”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker制作mysql镜像并自动安装脚本怎么写”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
2023-06-30

怎么用Python写一个京东自动下单抢购脚本

本文小编为大家详细介绍“怎么用Python写一个京东自动下单抢购脚本”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Python写一个京东自动下单抢购脚本”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1 问
2023-07-05

编程热搜

目录