1. db2数据库挂起,含泪求助
hang的问题一般是latch引起,日志里不会有报错,数据库也停不下来,唯一解决的方法就是用db2_kill强杀,然后db2start重新起。如果需要分析db2 hang 的原因,在hang的时候搜集如下数据:
db2pd -latch
db2pd -stack all
如果你们公司有800的服务,可以将收集的数据传至800让他们请实验室分析,因为解析stack和latch引起hang的原因只能IBM的人才能做
2. DB2数据库发生死锁了怎么办
先定位一下是哪个程序句柄导致的死锁。
方法一、查看db2diag.log文件
找到DeadLock or Lock timeout 死锁或锁超时信息
db2 force application(句柄ID)
直接结束进程即可。
方法二、DB2快照信息
1、看一下DB2快照信息
db2 get snapshot for locks on sample
可以得到类似信息:
数据库锁定快照
数据库名称 = SAMPLE
数据库路径 = D:\IBM\DB2\NODE0000\SQL00001\
输入数据库别名 = SAMPLE
挂起的锁定 = 8
当前已连接的应用程序 = 2
当前正等待锁定的代理程序数 = 1
应用程序句柄 = 54
应用程序标识 = *LOCAL.DB2.140304192925
序号 = 00001
应用程序名 = db2bp.exe CONNECT
授权标识 = DB2ADMIN
应用程序状态 = 锁定等待
应用程序代码页 = 1208
挂起的锁定 = 4
总计等待时间(毫秒) = 247867
锁定列表
锁定名称 = 0x5359534C564C3031DDECEF2841
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 2312
对象类型 = 行
表空间名 = IBMDB2SAMPLEREL
表模式 = DB2ADMIN
表名 = TEST
方式 = IX
查看锁定的详细信息:db2 get snapshot for locks for application agentid 1728
----(1728是句柄ID)
3、观察命令db2 list applications的输出
查看应用程序的状态是否有锁定等待(Lock-wait)状态出现。
执行命令 list applications for db sample show detail;
4、db2 force application(句柄ID)
直接结束进程即可。
3. 解决sql数据库挂起
1、以 Windows 7 系统为例,点击开始菜单,在搜索和文件处输入 regedit (此命令为打开注册表),然后回车。