欢迎来到天天文库
浏览记录
ID:30446775
大小:84.58 KB
页数:14页
时间:2018-12-30
《解决oracle数据库死锁》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、解决Oracle数据库死锁解决Oracle数据库死锁2011年01月12日星期三08:35P.M.解决Oracle数据库死锁介绍本文我们尝试总结在多个用户并发情况下,如何识别和解决删除操作期间发生的死锁问题,在开始之前,我们先简单描述一下什么是死锁以及什么东西会导致死锁。死锁在任何数据库中发生死锁都是不愉快的,即使是在一个特殊的情况下发生也是如此,它们会减小应用程序的接受程度(ACCEPTANCE),因此避免并正确解释死锁是非常重要的。当两个或更多用户相互等待锁定的数据时就会发生死锁,发生死锁时,这些用户被卡住不能继续处理业务,Oracle自动检
2、测死锁并解决它们(通过回滚一个包含在死锁中的语句实现),释放掉该语句锁住的数据,回滚的会话将会遇到Oracle错误"ORA-00060:等待资源时检测到死锁"。是什么导致了死锁?明确地锁定表是为了保证读/写一致性,未建立索引的外键约束,在相同顺序下表不会锁住,没有为数据段分配足够的存储参数(主要是指INITTRANS,MAXTRANS和PCTFREE参数)很容易引发突发锁和死锁,原因是多种多样的,需要重新逐步审查。识别死锁当Oracle数据库检测到死锁时(Oracle错误消息:ORA-00060),相应的消息就写入到警告日志文件中(alert.l
3、og),另外还会在USER_DUMP_DEST目录下创建一个跟踪文件,分析警告日志文件和跟踪文件是非常耗时的。下面是一个警告日志文件示例:MonAug0709:14:422007ORA-000060:Deadlockdetected.Moreinfoinfilee:oracleadminGEDEONudumpORA01784.TRC.下面是从跟踪文件中节选出来的片段,从其中我们可以看出是哪个语句创造了死锁,相关的语句和被锁定的资源已经标记为粗体。/users/ora00/log/odn_ora_1097872.trcOracle9iEn
4、terpriseEditionRelease9.2.0.8.0-64bitProductionWiththePartitioning,OLAPandOracleDataMiningoptionsJServerRelease9.2.0.8.0-ProductionORACLE_HOME=/soft/ora920Systemname:AIXNodename:beaid8Release:2Version:5Machine:00C95B0E4C00Instancename:ODNRedothreadmountedbythisinstance:1Oracl
5、eprocessnumber:17Unixprocesspid:1097872,image:oracle@beaid8(TNSV1-V3)*2007-06-0414:41:04.080*SESSIONID:(10.6351)2007-06-0414:41:04.079DEADLOCKDETECTED(ORA-00060)ThefollowingdeadlockisnotanORACLEerror.Itisadeadlockduetousererrorinthedesignofanapplicationorfromissuingincorrecta
6、d-hocSQL.Thefollowinginformationmayaidindeterminingthedeadlock:Deadlockgraph:---Blocker(s)-----Waiter(s)---ResourceNameprocesssessionholdswaitsprocesssessionholdswaitsTM-00001720-000000001710SX1618SXSSXTM-0000173a-000000001618SX1710SXSSXsession10:DID0001-0011-00000002session1
7、8:DID0001-0010-00000022session18:DID0001-0010-00000022session10:DID0001-0011-00000002Rowswaitedon:Session18:obj-rowid=00001727-AAABcnAAJAAAAAAAAA(dictionaryobjn-5927,file-9,block-0,slot-0)Session10:obj-rowid=00001727-AAABcnAAJAAAAAAAAA(dictionaryobjn-5927,file-9,block-0,slot-
8、0)InformationontheOTHERwaitingsessions:Session18:pid=16serial=2370au
此文档下载收益归作者所有