昨天还在跟Andy抱怨写书的人会在书里大量帖日志来充字数坑读者捞钱的事,不过刚才有一库挂了,开始查阅日志
在分析一个trace日志时,翻阅了下eygle的一个很经典的分析思路的文章,整理了下给大家
文章的重点不是导致报错的原因跟解决的办法,而是寻找问题的思路与手段,eygle也是最擅长这样剥丝抽茧般地寻找问题
这才是最宝贵的,毕竟一旦知道真正的原因了,问题就立刻有办法迎刃而解了,而最难的是如何去发现问题的根源
在Oracle数据库的运行过程中,可能会因为一些异常遇到数据库挂起失去响应的状况,在这种状况下,我们可以通过对系统状态进行转储,获得跟踪文件进行数据库问题分析;很多时候数据库也会自动转储出现问题的进程或系统信息;这些转储信息成为我们分析故障、排查问题的重要依据
1状态转储的常用命令当数据库出现一些挂起状态时,往往会严重影响到数据库使用,进程级的问题影响范围较小,而系统级的问题则会影响全局
在出现数据库系统或进程失去响应时,如果SQL*Plus工具仍然可以连接,可能视图查询没有相应,但是可以通过oradebug工具来进行进程及系统状态信息的转储,从而可以进行Hang分析
DUMP进程状态可以使用:altersessionssetevents'immediatetracenameprocessstatelevel';或者使用:oradebugsetmypidoradebugulimitoradebugdumpprocessstate当诊断数据库挂起时,可以使用DUMP命令转储整个系统状态:altersessionssetevents'immediatetracenamesystemstatelevel';或:oradebugsetmypidoradebugulimitoradebugdumpsystemstate如果为了获取全面