当前位置: 首页 > news >正文

发现操作系统的数据库出现死锁如何处理

where q.address = s.sql_address
and q.hash_value = s.sql_hash_value
and s.paddr = p.addr
and exists (select sid
from v$lock
where block=1 and sid=s.sid);
如果提示no rows select(没有行选中) ,则表示没有业务方面的锁,现在的锁不影响业务系统的正常运行,如果有这些提示,表示已经有锁已经影响业务系统的正常运行,根据下一步操作查询导致死锁语句,告之业务系统维护人员进行解锁;
b) 输入脚本
select nvl(s.username,'Internal') username,
nvl(s.terminal,'None') terminal,
L.sid||','||s.serial# kill,
u1.name||'.'||substr(t1.name,1,20) tab,
decode(L.lmode,1,'No Lock',
2,'Row Share',
3,'Row Exclusive',
4,'Share',
5,'Share Row Exclusive',
6,'Exclusive',null) lmode,
decode(L.request,1,'No Lock',
2,'Row Share',
3,'Row Exclusive',
4,'Share',
5,'Share Row Exclusive',
6,'Exclusive',null) request
from v$lock L,
v$session s,
sys.user$ u1,
sys.obj$ t1
where L.sid = s.sid
and t1.obj# = decode(L.id2,0,L.id1,L.id2)
and u1.user# = t1.owner#
and s.type != 'BACKGROUND'
order by 1,2,5;
如果提示no rows selected,,则表示没有死锁现象,如果有其他提示的,则表示有死锁的现象。
可根据L.sid||'查询SQL语句:
SELECT sql_text FROM v$sqltext a WHERE a.hash_value = (SELECT sql_hash_value FROM v$session b WHEREb.SID ='&sid')
将这些死锁现象交给数据库人员进行处理,
如果需要驻场人员进行进程的KILL,可以使用命令alter system kill session 'kill字段的值'; (kill字段的值即查询出的L.sid||','||s.serial#数值)
3)Kill后,再次查找死锁情况,确认没有死锁的情况,关闭CASE。
Ps:如果删除KILL会话,提示为ora-000031,建议处理方法如下:
1) 使用命令
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=24(sid 为L.sid||')
查询出来的进程ID
2) 在linux下,用root身份运行,使用kill -9 12345
在windows下,orakill sid thread,其中: sid:表示要杀死的进程属于的实例名,thread:是要杀掉的线程号,即第3步查询出的spid。
例:c:>orakill orcl 12345

转载于:https://blog.51cto.com/795580/2065179

相关文章:

  • 微服务架构到底应该如何选择?
  • 搭建MySQL高可用负载均衡集群
  • Rust发布1.32版本,跟踪、模块化、宏等方面均有改进
  • python文本 字符串逐字符反转以及逐单词反转
  • 海南2018年共审理涉黑涉恶案件82件456人
  • 家电新政促销费 国美智能、绿色家电销售迎政策红利
  • 机器学习新手必学十大算法指南
  • linux如何批量关闭进程
  • Pandas模块:表计算与数据分析
  • java基础ConcurrentHashMap原理
  • 常用正则表达式
  • tensorflow学习笔记3——MNIST应用篇
  • Java 注解 (Annotation)你可以这样学
  • LCD常用接口原理【转】
  • python发送微信
  • 【RocksDB】TransactionDB源码分析
  • Android单元测试 - 几个重要问题
  • ES2017异步函数现已正式可用
  • JavaScript DOM 10 - 滚动
  • Java多线程(4):使用线程池执行定时任务
  • java中具有继承关系的类及其对象初始化顺序
  • js学习笔记
  • NSTimer学习笔记
  • Swift 中的尾递归和蹦床
  • 高度不固定时垂直居中
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 收藏好这篇,别再只说“数据劫持”了
  • ​马来语翻译中文去哪比较好?
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #define,static,const,三种常量的区别
  • #ifdef 的技巧用法
  • #传输# #传输数据判断#
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (一)u-boot-nand.bin的下载
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转载)Linux网络编程入门
  • (状压dp)uva 10817 Headmaster's Headache
  • .net 获取url的方法
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET框架设计—常被忽视的C#设计技巧
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • .pyc文件是什么?
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • ::前边啥也没有
  • @Autowired @Resource @Qualifier的区别
  • @ResponseBody
  • []error LNK2001: unresolved external symbol _m
  • []sim300 GPRS数据收发程序
  • [1525]字符统计2 (哈希)SDUT