db2haodb
作者db2haodb·2016-07-13 17:30
数据库开发工程师·IGI

db2dart

字数 1428阅读 658评论 0赞 0

db2dart用于由于日志被破坏或者磁盘故障导致的db2不能连接(也适用于实例不能启动)的情况。

1. 尽量在执行db2dart的时候deactivate数据库:

  (0). db2 force applications all

  (1). db2 deactivate db sample

2. 找到需要恢复的表的表id和表空间id

db2 "select TABSCHEMA,TABNAME, TABLEID,TBSPACEID from syscat.tables where TABSCHEMA='DB2INST1' and TABNAME='PRODUCT'"

找到需要恢复的表的表id和所在表空间的id。 问题是,数据库没法连接,该怎么得到这两个值呢?

db2inst2@db2awse:~/db2dart_sample> db2dart sample /db /rpt  /home/db2inst2/liujw/db2dart_sample  /rptn checkdb_dart.out

         The requested DB2DART processing has completed successfully!

                        Complete DB2DART report found in:

/home/db2inst2/db2dart_sample/DART0000/checkdb_dart.out

在输出文件中找到类似于:Data inspection phase start. Data obj: 5  In pool: 0的语句, TABLEID为5,TBSPACEID为0

3. db2dart sample /ddel

   Table object data formatting start.

   Please enter

Table ID or name, tablespace ID, first page or logical row, num of pages or logical rows:

(may suffix page number with 'p' for pool relative if working with a pool-relative tablespace)

4,5,0,999

依次输入:表ID,表空间ID,起始页,页个数

起始页可以设为0, 页个数可以设为999999999

这样就可以得到del

对于以上步骤,一般情况下是整个db所有的表都需要操作,所以可以通过shell脚本批量操作。

4.重建数据库

需要用到db2look导出的设置。所以建议平时运维时经常保存一份建库脚本:

db2look -d sample -e -l -o sample_db2look.ddl

6. load del文件

重建数据库和表之后,将第3步得到的del文件load进相应的表中。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广