首页 > 数据库

DB2 故障处理的思路及一般问题的解决办法

时间:2009-05-27 14:31:46  作者:徐建明  我要投稿
Linux初探欢迎您的投稿,投放方法请点击这里查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
我认为解决问题的关键在于分清问题的种类,并清楚每种问题的解决办法。另外很多的数据库的问题都是由于错误的操作,错误的配置引起的,所以本文在解释怎么样处理问题......

数据库安装了新的补丁后没有运行db2iupdt

数据库文件的权限被改成了777,数据库文件的权限是有要求的,所以不能将所有的文件都改成777的权限

数据库实例文件被删除或损坏

主机名与db2nodes.cfg里记录的不一致

2.运行db2start时,hang在那里,既不报错,也无法启动实例

这种情况一般是由于实例没有正常的停止造成的,一般运行下列命令可以解决:

su -

db2_kill

ipclean

su – root

(将所有的与该实例有关的db2进程杀死kill -9 )

然后重新启动实例。

3.数据库实例崩溃问题

遇到实例崩溃的问题,首先查看db2diag.log,根据里面的信息来分析数据库宕机的原因。再看db2dump目录中是否有trap文件。可以根据这些信息来分析原因,一般这类问题都需要IBM工程师协助解决。

宕机的原因可以分为两类,一类是数据库的BUG,即数据库的缺陷引起的,一般如果遇到了数据库的缺陷,都有临时的解决方案,或者通过安装最新的补丁 来解决,对某些问题IBM也提供临时的修订来解决(需要付费)。另一类是操作系统,误操作等非产品问题导致的,对非产品问题导致的宕机尽量要避免。

Tip:常见的数据库宕机原因

系统的交换空间(paging space)用尽

数据库的某个进程被kill

二、数据库问题

1.数据连接问题

无法连接数据库,常见的错误有代码页错误,通讯协议错误,数据库状态错误等。

对代码页类错误,可以通过设置db2codepage,db2country来解决,这两个变量需要用db2set设置成与数据库一致的值。

当发生通讯类错误时,首先要要检查环境变量DB2COMM=TCPIP是否已经设置,然后要检查dbm cfg的SVCENAME,该变量可以直接设置成端口号,或者设置成服务名,该服务名要在services文件中设置成对应的端口号。要检查该端口号是否 已经被其他服务占用。在启动数据库后,可以运行netstat –an |grep,来查看该端口处于的状态。

TCP 0.0.0.0:50000 0.0.0.0:0 LISTENING

还有一种情况,当连接数据库时,数据库处于backup pending状态,无法连接。这是只要对数据库做一个备份就可以了。

Tip:通常导致数据库处于备份赞挂的原因

如果您需转载 DB2 故障处理的思路及一般问题的解决办法,请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目热门