数据库异常hang住解决

简介:
下午内网 测试库同事反应查询更新数据很慢,有时甚至表都打不开,后来通过服务器【linux】的top命令查看了下,cpu和mem占用正常,但wait高达80%多(下面两图显示的就是问题前后观察EM对比的截图,版本是oracle10gR2,EM的效果比oracle11gR2逊色不少哈):
  -------------------------------------->>
  ---------------------------->>
  接着通过sqldevelpdev客户端查询有没有锁等待之类会话事件,果然有,而且是两个session持有TX锁,然后通过下面的sql查询从oracle和linux级别kill掉了相应session,以为风波就此平静,结果过了不到一分钟查询又出现,只不过这次只有一个session持有TX锁,于是就去查找对应的sql_txt,找到后发现是个同事写的存储过程,定时任务,当时正在运行,让其确认下是不是任务执行出问题了,结果一查,是程序问题,造成的死循环,它会批量发起会话,kill一个后接着又锁,循环反复,后来他改了下程序后重新运行,一切恢复通畅.
--查询死锁
select sess.sid, sess.serial#,  lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode
from v$locked_object lo, dba_objects ao,v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid;
--oracle级别kill session
alter system kill session '1627,1';
alter system kill session '1564,64740';
--查询当前连接会话
select s.value,s.sid,a.username,a.MACHINE from v$sesstat S,v$statname N,v$session A
where n.statistic#=s.statistic# and name='session pga memory' and s.sid=a.sid and a.sid=1626
order by s.value;
--查询造成死锁的sql语句
SELECT   a.SID, a.username, s.sql_text FROM v$session a, v$sqltext s
WHERE a.sql_address = s.address AND a.sql_hash_value = s.hash_value  and a.SID=1626
ORDER BY a.username, a.SID, s.piece;
--造成锁等待的操作内容
begin
flt_com.p_line_relation_change(:A0,:B0,:C0,:D0,:E0,:ret_errorcode,:ret_errorname);
end;
--通过sid查找pid,进而通过系统级别kill
select spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid=1605;
--服务器级别kill
kill -9 spid
--------------------------------over game

最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
6月前
|
Kubernetes 关系型数据库 MySQL
ChaosBlade常见问题之数据库进行故障注入报错ibdata1文件异常如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
116 1
|
1月前
|
Java 关系型数据库 数据库连接
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第3天】Spring Boot项目中数据库连接问题可能源于配置错误或依赖缺失。YAML配置文件的格式不正确,如缩进错误,会导致解析失败;而数据库驱动不匹配、连接字符串或认证信息错误同样引发连接异常。解决方法包括检查并修正YAML格式,确认配置属性无误,以及添加正确的数据库驱动依赖。利用日志记录和异常信息分析可辅助问题排查。
107 10
|
1月前
|
Java 关系型数据库 MySQL
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第4天】本文分析了Spring Boot应用在连接数据库时可能遇到的问题及其解决方案。主要从四个方面探讨:配置文件格式错误、依赖缺失或版本不兼容、数据库服务问题、配置属性未正确注入。针对这些问题,提供了详细的检查方法和调试技巧,如检查YAML格式、验证依赖版本、确认数据库服务状态及用户权限,并通过日志和断点调试定位问题。
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—异常断电导致Oracle数据库数据丢失的数据恢复案例
Oracle数据库故障: 机房异常断电后,Oracle数据库启库报错:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。数据库没有备份,归档日志不连续。用户方提供了Oracle数据库的在线文件,需要恢复zxfg用户的数据。 Oracle数据库恢复方案: 检测数据库故障;尝试挂起并修复数据库;解析数据文件。
|
6月前
|
Java 关系型数据库 MySQL
【JAVA进阶篇教学】第八篇:Java链接MySql数据库异常
【JAVA进阶篇教学】第八篇:Java链接MySql数据库异常
|
6月前
|
SQL Oracle 关系型数据库
调整OceanBase数据库的系统时间,即使只调小1秒导致异常并不是正常现象
【2月更文挑战第21天】调整OceanBase数据库的系统时间,即使只调小1秒导致异常并不是正常现象
208 7
|
6月前
|
SQL 监控 关系型数据库
解密SQL性能异常事件及阿里云数据库的性能调优实践
作为开发者想必都知道数据库是现代应用的核心组件之一,而且在当今互联网时代之下,SQL查询的性能直接影响系统的整体性能,它的性能对于系统的稳定性和响应速度至关重要。那么本文就来讨论一下SQL性能异常的排查和优化方法,包括我个人印象深刻的SQL性能异常事件,以及分享一下使用阿里云数据库产品/工具进行SQL性能调优的经验和心得体会。
167 1
解密SQL性能异常事件及阿里云数据库的性能调优实践
|
6月前
|
关系型数据库 MySQL 数据库
使用Flink同步MySQL到doris数据库中,时间格式异常
当我完成同步时,我发现Doris数据库中的所有时间格式都变为了如此:1970-02-01 11:00:00.000000,在所有时间格式后面追加了一个点和6个零,这是怎样造成的,该如何解决这个问题
|
6月前
|
SQL 监控 数据库
Greenplum【异常 02】使用Navicat的服务器监控工具解决Greenplum数据库锁表问题
Greenplum【异常 02】使用Navicat的服务器监控工具解决Greenplum数据库锁表问题
60 0
|
数据库连接 API Nacos
Nacos在启动时会检查数据库连接,如果连接失败,它会抛出一个异常并退出
Nacos在启动时会检查数据库连接,如果连接失败,它会抛出一个异常并退出
221 7