DB2中表损坏问题和db2dart工具的使用

php中文网
发布: 2016-06-07 17:22:11
原创
1415人浏览过

这几天需要从一个备份集中恢复一个数据库,恢复后发现问题很多,本身这个备份中可能有存在不完整的log,处理完一个个问题后发现还是有表损坏,在db2diag中其日志

这几天需要从一个备份集中恢复一个数据库,恢复后发现问题很多,本身这个备份中可能有存在不完整的log,处理完一个个问题后发现还是有表损坏,在db2diag中其日志信息如下,倒是很清楚的看到损坏对象:db2数据库坏块代码


常规表的DDL语句示例

2014-04-27-05.06.42.071142-240 I36137A535         LEVEL: Severe
PID     : 14680376             TID  : 13881       PROC : db2sysc 0
INSTANCE: db2rilo              NODE : 000         DB   : WEB
APPHDL  : 0-40                 APPID: 9.32.130.62.37608.140427090600
AUTHID  : DEVPRCBK
EDUID   : 13881                EDUNAME: db2agent (WEB) 0
FUNCTION: DB2 UDB, data management, sqldFetchDirect, probe:4603
RETCODE : ZRC=0x87040001=-2029780991=SQLD_BADPAGE "Bad Data Page"
 DIA8500C A data file error has occurred, record id is "".

2014-04-27-05.06.42.071901-240 I36673A555         LEVEL: Severe
PID     : 14680376             TID  : 13881       PROC : db2sysc 0
INSTANCE: db2rilo              NODE : 000         DB   : WEB
APPHDL  : 0-40                 APPID: 9.32.130.62.37608.140427090600
AUTHID  : DEVPRCBK
EDUID   : 13881                EDUNAME: db2agent (WEB) 0
FUNCTION: DB2 UDB, trace services, sqlt_logerr_string (secondary logging fu, probe:0
MESSAGE : TABLESPACE ATTRIBUTES:
DATA #1 : String, 73 bytes
Tablespace Seed = 5, Bufferpool ID = 7, Extent Size = 16, Page Size = 8k

2014-04-27-05.06.42.072336-240 I37229A535         LEVEL: Severe
PID     : 14680376             TID  : 13881       PROC : db2sysc 0
INSTANCE: db2rilo              NODE : 000         DB   : WEB
APPHDL  : 0-40                 APPID: 9.32.130.62.37608.140427090600
AUTHID  : DEVPRCBK
EDUID   : 13881                EDUNAME: db2agent (WEB) 0
FUNCTION: DB2 UDB, trace services, sqlt_logerr_string (secondary logging fu, probe:0
MESSAGE : PAGE OBJECT IDENTIFIERS:
DATA #1 : String, 51 bytes
Tablespace ID = 5, Object ID = 72, Object Type = 0

2014-04-27-05.06.42.072612-240 I37765A511         LEVEL: Severe
PID     : 14680376             TID  : 13881       PROC : db2sysc 0
INSTANCE: db2rilo              NODE : 000         DB   : WEB
APPHDL  : 0-40                 APPID: 9.32.130.62.37608.140427090600
AUTHID  : DEVPRCBK
EDUID   : 13881                EDUNAME: db2agent (WEB) 0
FUNCTION: DB2 UDB, trace services, sqlt_logerr_string (secondary logging fu, probe:0
MESSAGE : PAGE NUMBERS:
DATA #1 : String, 38 bytes
Obj Page = 15430, Pool Page = 1061398

2014-04-27-05.06.42.072878-240 I38277A485         LEVEL: Severe
PID     : 14680376             TID  : 13881       PROC : db2sysc 0
INSTANCE: db2rilo              NODE : 000         DB   : WEB
APPHDL  : 0-40                 APPID: 9.32.130.62.37608.140427090600
AUTHID  : DEVPRCBK
EDUID   : 13881                EDUNAME: db2agent (WEB) 0
FUNCTION: DB2 UDB, trace services, sqlt_logerr_string (secondary logging fu, probe:0
MESSAGE : lifeLSN:
DATA #1 : String, 17 bytes
000000003CA9A178

分析:对于DB2中数据库出现坏块问题,如果没有使用该表时候,并不会影响数据库的正常使用,一旦有访问该表的会话,那么会造成整个数据库实例宕机,从而影响业务的应用,所以问题比较棘手,对于此类问题没有很好的解决,唯独可以通过db2dart离线方式将表中的数据导出,并且将表mark为unvaliable后重建即可,db2dart只开放了部分免费功能,如标记索引,导出数据,表空间高水位线处理及一些查看功能,但是对于标记表失效需要客服提供密码才可以使用。其实根据上面提供的信息已经比较完全了,只需要找出是那张表表即可。

Tablespace ID = 5, Object ID = 72, Object Type = 0


其中tablespace id即是坏块所在表的表空间ID,object id对应出现坏块的对象ID,可以是表索引或LOB,object type代表损坏对象的类型,0表示表,1表示索引,还有其他的LOB之类的吧,不过很少见,,上面可见损坏的是表,所以所以根据信息就可以通过syscat.tables查看损坏的表名称:

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号