欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

DB2 SQL5005C 系统错误问题排查 博客分类: DB2 db2 

程序员文章站 2024-03-23 11:14:22
...
今天现场运维人员反馈,在备份数据库的时候,提示“SQL5005C 系统错误”。运维人员反馈之前备份数据库从没有出现过这种错误,今天备份的时候就出现了这种错误,无法备份数据库。
于是,通过查询“SQL5005C”的错误解释:“A system error, probably an I/O error, was encountered while accessing a configuration file”,提示“当访问配置文件的时候出现了IO错误”。怀疑是数据库在访问某些文件时出来问题,于是让运维人员拿取db2diag.txt的文件查看是不是有详细错误打印出来,果然,在里面看到如下的错误:
2016-04-06-17.00.56.529000+480 I7974839F392       LEVEL: Error
PID     : 5936                 TID  : 5648        PROC : db2fmp64.exe
INSTANCE: DB2                  NODE : 000
EDUID   : 5648
FUNCTION: DB2 UDB, config/install, sqlfGetDbmCfg, probe:10
MESSAGE : SQL5005: sqlf_openfile rc =
DATA #1 : Hexdump, 4 bytes
0x000000000931B188 : 0A00 0F86  

通过查询MESSGAE信息,在http://www-01.ibm.com/support/docview.wss?uid=swg21642594的文章中找到了灵感,这个问题解决方案中提示查询db2systm文件的权限。于是,让运维同事找一下这个文件,可是在系统中竟然找不到这个文件,可是在测试环境能够找到这个文件。突然想到之前由于数据库磁盘空间不够,让运维同事删除过一些日志或监控文件,可能当时这个文件就被误删了。于是,在本地测试环境删除db2systm文件后,然后执行备份操作,发现问题现场和现场反馈的现象一致,于是得出结论,由于db2systm文件保存了数据库的配置信息,误删db2systm文件导致备份操作时读取该文件信息时出错,导致无法执行备份操作。

此时文件已经被删除,想想该如何补救吧。。。

在测试环境测试发现,删除db2systm文件后,再重新将db2systm文件还原(重新复制到)以后,问题竟然不存在了,想到将测试环境的db2systm文件copy到生产环境是不是就可以,于是让运维同事将db2systm文件copy到生产环境相同路径下,然后再次执行备份操作,问题解决。

注:之前让运维同事执行db2set命令的时候,显示不出来任何信息,当时没有引起足够重视,其实,执行db2set命令查询数据库的一些变量信息时,应该也是通过读取db2systm文件获取的,文件没有当然就获取不到任何信息。文件恢复后,执行db2set命令时,可以获取到变量信息了。
相关标签: db2