数据库异常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/

时间: 2024-09-15 03:23:28

数据库异常hang住解决的相关文章

Oracle datapump expdp/impdp 导入导出数据库时hang住

   最近在导出schema级别的数据时被hang住,不得不停止当前的导出作业,如果你有类似的问题,请继续往下看.  1.问题描述    导出整个schema时数据库被hang住,如下所示    符号">"是由SecureCRT设定的每300秒发送一次    oracle@Dev-DB-04:~> expdp goex_admin/xxx directory=db_dump_dir dumpfile=gobo2.dmp logfile=gobo2.log schemas=g

oracle 误杀进程导致rac hang住解决办法

有客户反馈系统hang住,不能归档,需要我们紧急介入分析 节点1日志 出现redo不能归档,redo日志都已经被写满,人工执行了ALTER SYSTEM ARCHIVE LOG CURRENT,数据库就开始把redo全部归档,但是后面产生的redo又不能归档,当redo全部写满之后,数据库有出现大量log file switch (archiving needed)等待  代码如下 复制代码 Tue Sep 24 22:05:37 2013 Thread 1 advanced to log se

Oracle数据库shutdown immediate被hang住的几个原因

实验操作环境:         操作系统:Red Hat Enterprise Linux ES release 4 (Nahant Update 6)                           数据库 : Oracle Database 10g Release 10.2.0.4.0 – Production  32bit 今晚使用shutdown immediate(其实是执行stop_oracle.sh脚本关闭数据库,如下所示)关闭数据库的时候, 1: [oracle@gsp-or

normal数据库关闭hang的问题

今晚办公楼停电维护,需要提前关闭服务器,为防止异常关闭导致的各种问题,有个测试库,使用shutdown normal停库,结果就是很常见的hang住了. 操作顺序: ​1. shutdown normal,然后关闭了当前sqlplus窗口.​从alert日志中看:​Mon Jun 22 16:50:22 2015Shutting down instance (normal)Stopping background process SMCOShutting down instance: furthe

Oracle 9i数据库异常关闭后的启动

Oracle shutdown的时候突然断电,导致使用sql/plus启动时无法连接到数据库,具体描述为: connection can not permitted, shut in progress. 到dos 提示符 键入: c:\> sqlplus /nolog 显示: sql/plus: Realease9.0.2--..all rights reserved sql> connect /as sysdba 显示已连接至空闲例程 sql>startup 显示shutdown in

awr-oracle RAC hang住的问题

问题描述 oracle RAC hang住的问题 大家好,我的数据库是oracle 11.2.0.1 四节点RAC,有一天我们的数据库hang住了,业务只能做简单的查询,不能往数据库里面写数据了.于是,管理员重启了其中一个实例后业务恢复. 然后,我就准备对数据库做一个故障发生时的awr报告,但是发现故障这个时间段awr报告没有,时间空了好几个小时的.于是我只能做故障最近两个小时内的awr报告,大家帮我看看我的数据库发生了什么什么问题,怎么优化,谢谢大家. 以下是我的awr报告 附件可以到这个链接

SSH框架配置异常请问怎么解决

问题描述 SSH框架配置异常请问怎么解决 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is o

mysql主键的缺少导致备库hang住_Mysql

最近线上频繁的出现slave延时的情况,经排查发现为用户在删除数据的时候,由于表主键的主键的缺少,同时删除条件没有索引,或或者删除的条件过滤性极差,导致slave出现hang住,严重的影响了生产环境的稳定性,也希望通过这篇博客,来加深主键在innodb引擎中的重要性,希望用户在使用RDS,设计自己的表的时候,一定要为表加上主键,主键可以认为是innodb存储引擎的生命,下面我们就来分析一下这个案例(本案例的生产环境的binlog为row模式,对于myisam存储引擎也有同样的问题):(1).现象

hibernate-用ssh写的java后台,在本机上做了下并发测试,才100用户并发mysql就开始报异常了,怎么解决

问题描述 用ssh写的java后台,在本机上做了下并发测试,才100用户并发mysql就开始报异常了,怎么解决 org.hibernate.exception.JDBCConnectionException: Cannot open connection at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:97) at org.hibernate.exception.JDBCExceptionHe