DB2数据库HANG住的时候应该收集什么数据以及如何处理

问题: DB2在使用过程中经常会遇到HANG死,本文旨在探讨如果整个库/DB2都HANG死的时候,应该收什么数据,如何处理,以便事后分析HANG住的原因。


一 数据收集

1.) 最简单的命令是db2fodc -hang,是比较推荐的做法,优点是它收集的信息比较全,缺点是用的时间比较长。命令如下,


db2fodc -hang full -member all

或者

db2fodc -hang basic -member all


两者区别如下

basic
The basic collection mode is run, without user interaction. Less data is collected than in the full mode, but with less resources used.
full
The full collection mode is run, without user interaction. This option requires more resources and time to run than basic collection mode, but gathers more data.

更多资料,请参考信息中心


2.)如果实在等不及,需要立即重启系统,则最少需要收集以下数据,优点是用时相对较少,缺点是收到的数据很可能不足。


db2pd -db SAMPLE -app -tran -edu -dynamic >> app.out
db2pd -stack all -repeat 30 3
db2pd -latch -repeat 30 3 >> latch.out
db2pd -everything >> db2pd.everythingout
db2 get snapshot for all applications >> app.snap.out
db2 get snapshot for db on SAMPLE >> db.snap

注意

A.将上面的SAMPLE换成您自己的数据库的名子。

B. 隔一段时间之后,比如5分钟,再收集一次上面的数据,这个是十分必要的。

C. "-repeat 30 3",这里的30 3指的是每隔30S收集一次,一共收集3次,如果节点数很多的话,可能需要较多的时间,这时候可以缩小间隔,比如每2s收集一次,收集2次: db2pd -stack all -repeat 2 2 


如果是分区数据库,则需要所有节点都收集,在catalog节点上执行,同样,需要收集两次:

db2_all "db2pd -db SAMPLE -app -tran -edu -dynamic" >> app.out

db2_all "db2pd -stack all -repeat 30 3"
db2_all "db2pd -latch -repeat 30 3" >> latch.out
db2_all "db2pd -everything" >> db2pd.everythingout
db2 "GET SNAPSHOT FOR ALL APPLICATIONS GLOBAL" >> app.snap.out
db2_all "db2 get snapshot for db on SAMPLE" >> db.snap

其中,stack的数据会在db2dump目录下。


二 HANG的解决

1) 强制杀掉DB2进程

#su  -  db2_instance_name

$db2_kill

$ipclean

 

2) 验证没有DB2进程存在

#su  -  db2_instance_name

$ps –ef|grep db2

 

3) 启动DB2进程

#su  -  db2_instance_name

$db2start

 

4) 验证DB2数据库操作正常

#su  -  db2_instance_name

$db2 connect to db_name

$db2 “select * from syscat.bufferpools”


三 事后原因分析

无论是哪一种数据收集的方式,重启完要收集一个db2support,连同收集的其他数据一并上传到IBM的服务器上(需要先拨打IBM技术支持热线开一个PMR):

收集db2support的命令如下,收集完成之后,会在当前目录下生成一个db2support.zip文件:


db2support . -d sample -c -s -f (将sample替换成您的数据库的名子)

如果是分区数据库:请用下面的命令收集:

db2support . -d sample -c -s -f -member all (将sample替换成您的数据库的名子)):




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值