Home > Database > Mysql Tutorial > DB2中表损坏问题和db2dart工具的使用

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

WBOY
Release: 2016-06-07 17:22:11
Original
1315 people have browsed it

这几天需要从一个备份集中恢复一个数据库,恢复后发现问题很多,本身这个备份中可能有存在不完整的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查看损坏的表名称:

Related labels:
db2
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template