我们环境中DB2V9.7, AIX环境。最近经常遇到数据库莫名hang住的问题。
发生故障时:数据库操作无返回,应用程序无响应。
db2 connect to dbname 无反应 , db2stop force无反应。
执行ps -ef |grep db2sysc确认系统中还有db2sysc进程。但是其他数据库操作都无法执行,不报错也不返回任何东西。只能重启服务器,各位大神谁了解大概什么原因导致数据库会hang住?
我们以前有个协同办公的程序有过类似的情况。weblogic服务莫名hang住。aix系统CPU占用率正常。内存正常。进程中也有weblogic的进程。要杀掉weblogic。然后重启启动服务后就正常了。
因为不熟悉开发层面的部分。我只是和软件的同事协商过。因为从系统层面。我觉得没有发现明显的异常。所以我怀疑最多的应该是连接池占满导致程序假死,不过因为每次挂掉的时候都没有什么先兆。应用日志层面也没有给我反馈给我更多的信息。所以一直也没有办法判断。
按你的描述。我觉得首先也可以查看系统层面的。cpu 。内存。磁盘io还有网络及部分的状态。然后与DBA协商去检查数据库日志。看能不能找到什么有用的信息。
数据库hang住,首先看日志是不是满了,如果没有满,就查看有没有lock锁住了应用。
收起看db2diag吧,也可以用db2pd工具分析,看app,tran,mem等内容,另外如果db2stop force没有反应的话,重启服务器还不如用db2_kill和ipclean这两个命令。
收起重启服务器,你的数据库能够正常启动?我觉得数据库hang住,很多可能。连接无反应,可以
1、用db2pd收集信息,如app、wlock、locks等信息,尽量多的收集;
2、查看db2diag信息;
3、db2stop force无反应,可以先执行db2_kill,这个是ibm自带的停止数据库的命令,更安全,本质上还是kill -9。另,我怀疑有大事务不释放,你执行db2stop force 的时候数据库在回滚中。