fengsh
作者fengsh·2012-03-19 10:43
系统工程师·电信行业

DB2数据库表损坏无法删除故障处理一例

字数 80771阅读 20434评论 9赞 0
DB2数据库表损坏无法删除故障处理一例

一、故障现象:
删除表空间过程提示有表空间无法正常删除:
[DWE3:/db2home/db2inst1/fengsh]db2 drop tablespace tbs_dw
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0282N  Table space "TBS_DW" cannot be dropped because at least one of the
tables in it, "PDW.T_DWU_PAR_IN_D", has one or more of its parts in another
table space.  SQLSTATE=55024
因为tbs_dw上表部分索引创建在tbs_idx表空间,且不能删除。在计划删除TBS_DW表空间上以下几张表分表报错:
[DWE3:/db2home/db2inst1/fengsh]db2 "select substr(tabschema,1,20),substr(tabname,1,60) as tabname,'db2 drop table '||rtrim(tabschema)||'.'||tabname||';' as sql from syscat.tables t1,syscat.tablespaces t2 where t1.tbspaceid=t2.tbspaceid and t2.tbspace='TBS_DW'"
1                    TABNAME                                                      SQL                                                                                                                                                                                                                                                                             
-------------------- ------------------------------------------------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PDW                  T_DWU_MARK_USER_TOT_M1009
                                 db2 drop table PDW.T_DWU_MARK_USER_TOT_M1009
;                                                                                                                                                                                                                                
PDW                  T_DWU_PAR_IN_D                                               db2 drop table PDW.T_DWU_PAR_IN_D;                                                                                                                                                                                                                                              
PDW                  T_DWU_PAR_USER_STAT_D                                        db2 drop table PDW.T_DWU_PAR_USER_STAT_D;                                                                                                                                                                                                                                       
PDW                  T_DWU_PAR_PPS_D_HIS                                          db2 drop table PDW.T_DWU_PAR_PPS_D_HIS;                                                                                                                                                                                                                                         
PDW                  T_DWU_MARK_USER_TOT_M1008
                                  db2 drop table PDW.T_DWU_MARK_USER_TOT_M1008
;                                                                                                                                                                                                                                 
  5 record(s) selected.

其中有两种不同的错误,具体错误如下:
[DWE3:/db2home/db2inst1/fengsh] db2 drop table PDW.T_DWU_MARK_USER_TOT_M1009
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0204N  "PDW.T_DWU_MARK_USER_TOT_M1009" is an undefined name. 
SQLSTATE=42704
[DWE3:/db2home/db2inst1/fengsh]db2 drop table PDW.T_DWU_PAR_IN_D;
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL1007N  Error in finding pages for an object in a table space. 
SQLSTATE=58034
[DWE3:/db2home/db2inst1/fengsh]db2 drop table PDW.T_DWU_PAR_USER_STAT_D;
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL1007N  Error in finding pages for an object in a table space. 
SQLSTATE=58034
[DWE3:/db2home/db2inst1/fengsh]db2 drop table PDW.T_DWU_PAR_PPS_D_HIS;
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL1007N  Error in finding pages for an object in a table space. 
SQLSTATE=58034
[DWE3:/db2home/db2inst1/fengsh]db2 drop table PDW.T_DWU_MARK_USER_TOT_M1008
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0204N  "PDW.T_DWU_MARK_USER_TOT_M1008" is an undefined name. 
SQLSTATE=42704
 
问题1:表删除报坏页错误
错误:
[DWE3:/db2home/db2inst1/fengsh]db2 drop table PDW.T_DWU_PAR_USER_STAT_D;
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL1007N  Error in finding pages for an object in a table space. 
SQLSTATE=58034
[DWE3:/db2home/db2inst1/sqllib/db2dump]db2 ? SQL1007N

SQL1007N Error in finding pages for an object in a table
          space. 
Explanation:
There are corrupted internal database pages or internal logic
error for a table space. 
User Response:
Discontinue use of the object or table space. Contact IBM service
to inspect the object and the table space. 
 sqlcode :   -1007
 sqlstate :  58034

日志:
2012-01-12-16.03.08.213769+480 I83658A434         LEVEL: Error
PID     : 663742               TID  : 1           PROC : db2agntp (BSSDB) 1
INSTANCE: db2inst1             NODE : 001         DB   : BSSDB
APPHDL  : 0-71                 APPID: *N0.db2inst1.120112071850
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, buffer pool services, sqlbDMSMapObj2Pool, probe:840
MESSAGE : ZRC=0x8402001A=-2080243686=SQLB_EMP_MAP_INFO_END "EMP MAP INFO END"
2012-01-12-16.03.08.214143+480 I84093A516         LEVEL: Error
PID     : 663742               TID  : 1           PROC : db2agntp (BSSDB) 1
INSTANCE: db2inst1             NODE : 001         DB   : BSSDB
APPHDL  : 0-71                 APPID: *N0.db2inst1.120112071850
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, buffer pool services, sqlbDMSMapObj2Pool, probe:840
DATA #1 : String, 132 bytes
 Obj={pool:8;obj:1190;type:0} State=x27 Parent={8;1190}, EM=982552, PP0=982568 Page=1828 Cont=0 Offset=4578027520 BlkSize=282493056
2012-01-12-16.03.08.214356+480 I84610A918         LEVEL: Error
PID     : 663742               TID  : 1           PROC : db2agntp (BSSDB) 1
INSTANCE: db2inst1             NODE : 001         DB   : BSSDB
APPHDL  : 0-71                 APPID: *N0.db2inst1.120112071850
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, buffer pool services, sqlbDMSMapObj2Pool, probe:0
DATA #1 : Object descriptor, PD_TYPE_SQLB_OBJECT_DESC, 72 bytes
    Obj: {pool:8;obj:1190;type:0} Parent={8;1190}
  lifeLSN:       3A06544E2465
  tid:           0 0  0
  extentAnchor:              982552
  initEmpPages:                   0
  poolPage0:                 982568
  poolflags:                    122
  objectState:                   27
  lastSMP:                        0
  pageSize:                   16384
  extentSize:                     8
  bufferPoolID:                   2
  partialHash:             77987848
  bufferPool:    0x0780000233f696e0
2012-01-12-16.03.08.214715+480 I85529A460         LEVEL: Warning
PID     : 791048               TID  : 1           PROC : db2agent (BSSDB) 0
INSTANCE: db2inst1             NODE : 000         DB   : BSSDB
APPHDL  : 0-71                 APPID: *N0.db2inst1.120112071850
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, catcache support, sqlrlc_systables_fetch_from_disk, probe:310
RETCODE : ZRC=0x8012006D=-2146303891=SQLR_CA_BUILT
          "SQLCA has already been built"
2012-01-12-16.03.08.215042+480 I85990A446         LEVEL: Warning
PID     : 791048               TID  : 1           PROC : db2agent (BSSDB) 0
INSTANCE: db2inst1             NODE : 000         DB   : BSSDB
APPHDL  : 0-71                 APPID: *N0.db2inst1.120112071850
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, catcache support, sqlrlc_systables_fetch_from_disk, probe:311
RETCODE : ZRC=0x8402001A=-2080243686=SQLB_EMP_MAP_INFO_END "EMP MAP INFO END"
 
问题2:表删除报undefined name
[DWE3:/db2home/db2inst1/fengsh]db2 "drop table PDW.T_DWU_MARK_USER_TOT_M1008"                                                                               
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0204N  "PDW.T_DWU_MARK_USER_TOT_M1008" is an undefined name. 
SQLSTATE=42704
[DWE3:/db2home/db2inst1/fengsh]db2 " select tabschema,rtrim(tabname),type,status,tbspace from  syscat.tables where tabname like 'T_DWU_MARK_USER_TOT_M1008%'"                   
TABSCHEMA                                                                                                                        2                                                                                                                                TYPE STATUS TBSPACE                                                                                                                        
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- ---- ------ --------------------------------------------------------------------------------------------------------------------------------
PDW                                                                                                                              T_DWU_MARK_USER_TOT_M1008
                                                                                                      T    N      TBS_DW                                                                                                                         
  1 record(s) selected.
[DWE3:/db2home/db2inst1/fengsh]db2 " select tabschema,rtrim(tabname),type,status,tbspace from  syscat.tables where tabname = 'T_DWU_MARK_USER_TOT_M1008'"   
TABSCHEMA                                                                                                                        2                                                                                                                                TYPE STATUS TBSPACE                                                                                                                        
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- ---- ------ --------------------------------------------------------------------------------------------------------------------------------
  0 record(s) selected.

[DWE3:/db2home/db2inst1/fengsh]db2 list tables for schema PDW|grep -i T_DWU_MARK_USER_TOT_M1008
T_DWU_MARK_USER_TOT_M1008
 
 
   二、处理过程:
==============
单独删除索引也报错
==============
根据查询数据字典,发现此表上有一个索引,创建约束系统创建的,问题是删除约束时也报错,page错误
[DWE3:/db2home/db2inst1/fengsh]db2 "select indschema,indname,tabschema,tabname from syscat.indexes where tabname='T_DWU_PAR_IN_D'"          
INDSCHEMA                                                                                                                        INDNAME                                                                                                                          TABSCHEMA                                                                                                                        TABNAME                                                                                                                        
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------
SYSIBM                                                                                                                           SQL070518180304860                                                                                                               PDW                                                                                                                              T_DWU_PAR_IN_D                                                                                                                 
  1 record(s) selected.
[DWE3:/db2home/db2inst1/fengsh]db2 drop index sysibm.SQL070518180304860                                                          
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0669N  A system required index cannot be dropped explicitly. 
SQLSTATE=42917
[DWE3:/db2home/db2inst1/fengsh]db2 ? SQL0669N

SQL0669N A system required index cannot be dropped explicitly. 
Explanation:
The DROP INDEX statement attempted to drop an index required to:
o   enforce the primary key constraint on a table
o   enforce a unique constraint on a table
o   enforce the uniqueness of the object identifier (OID) column 
    of a typed table hierarchy
o   maintain a replicated materialized query table
o   maintain an XML column in the table. 
 
 A system required index cannot be dropped using the DROP INDEX
statement. 
 The statement cannot be processed.  The specified index is not
dropped. 
User Response:
If you do not want to keep the primary or unique constraint, use
the DROP PRIMARY KEY clause or the DROP CONSTRAINT clause of the
ALTER TABLE statement to remove the primary key or unique
constraint.  If the index was created only for enforcing the
primary or unique key, then the index will be dropped.  If not,
the DROP INDEX statement could then be processed. 
 The index for an OID column can only be dropped by dropping the
table. 
 The index required to maintain a replicated materialized query
table can only be dropped by first dropping the replicated
materialized query table. 
 The system-required indexes associated with one or more XML
columns in a table cannot be dropped explicitly.  Such indexes
are maintained by the database manager to support the XML column
in the table.  The index specified in the DROP INDEX statement
cannot be dropped without dropping the table. 
 sqlcode :  -669
 sqlstate :  42917
[DWE3:/db2home/db2inst1/fengsh]db2 "describe table pdw.T_DWU_PAR_IN_D
> "
Column                         Type      Type
name                           schema    name               Length   Scale Nulls
------------------------------ --------- ------------------ -------- ----- ------
DEAL_DATE                      SYSIBM    DECIMAL                   8     0 No   
REGION_CDE                     SYSIBM    CHARACTER                 2     0 Yes  
CITY_CDE                       SYSIBM    CHARACTER                 2     0 Yes  
SVC_TYPE_CDE                   SYSIBM    CHARACTER                 2     0 Yes  
MSISDN                         SYSIBM    CHARACTER                11     0 No   
USER_TYPE                      SYSIBM    DECIMAL                   3     0 Yes  
USER_STAT                      SYSIBM    DECIMAL                   6     0 Yes  
IN_DNNR_TYPE                   SYSIBM    DECIMAL                   6     0 Yes  
ACCT_BAL                       SYSIBM    DECIMAL                  12     3 Yes  
GUASHI_FLAG                    SYSIBM    VARCHAR                   3     0 Yes  
LOCK_STAT                      SYSIBM    VARCHAR                   3     0 Yes  
BLACK_STAT                     SYSIBM    VARCHAR                   3     0 Yes  
INVOLID_DATE                   SYSIBM    DECIMAL                   8     0 Yes  
ACTI_DATE                      SYSIBM    DECIMAL                   8     0 Yes  
COUT_LIMIT_FLAG                SYSIBM    VARCHAR                   3     0 Yes  
LAST_USER_SVC_STA              SYSIBM    DECIMAL                   6     0 Yes  
INNET_WAY                      SYSIBM    DECIMAL                   8     0 Yes  
NEW_UNUM_FLAG                  SYSIBM    DECIMAL                  16     0 Yes  
VALID_UNUM_FLAG                SYSIBM    DECIMAL                  16     0 Yes  
LOCK_UNUM_FLAG                 SYSIBM    DECIMAL                  16     0 Yes  
OVER_LOCK_UNUM_FLAG            SYSIBM    DECIMAL                  16     0 Yes  
CHARGE_UNUM_FLAG               SYSIBM    DECIMAL                  16     0 Yes  
BILL_UNUM_FLAG                 SYSIBM    DECIMAL                  16     0 Yes  
FIRST_ACT_DATE                 SYSIBM    DECIMAL                   8     0 Yes  
IN_RESV_DATE                   SYSIBM    DECIMAL                   8     0 Yes  
IN_LOCK_DATE                   SYSIBM    DECIMAL                   8     0 Yes  
BRAND_TYPE_CDE                 SYSIBM    VARCHAR                   2     0 Yes  
  27 record(s) selected.
[DWE3:/db2home/db2inst1/fengsh]db2look -d bssdb -e -t T_DWU_PAR_IN_D
-- No userid was specified, db2look tries to use Environment variable USER
-- USER is: DB2INST1
-- The db2look utility will consider only the specified tables
-- Creating DDL for table(s)
-- This CLP file was created using DB2LOOK Version 9.1
-- Timestamp: Thu Jan 12 17:21:29 BEIST 2012
-- Database Name: BSSDB         
-- Database Manager Version: DB2/AIX64 Version 9.1.9      
-- Database Codepage: 1386
-- Database Collating Sequence is: UNIQUE

CONNECT TO BSSDB;
------------------------------------------------
-- DDL Statements for table "PDW     "."T_DWU_PAR_IN_D"
------------------------------------------------
 
CREATE TABLE "PDW     "."T_DWU_PAR_IN_D"  (
                  "DEAL_DATE" DECIMAL(8,0) NOT NULL ,
                  "REGION_CDE" CHAR(2) ,
                  "CITY_CDE" CHAR(2) ,
                  "SVC_TYPE_CDE" CHAR(2) ,
                  "MSISDN" CHAR(11) NOT NULL ,
                  "USER_TYPE" DECIMAL(3,0) ,
                  "USER_STAT" DECIMAL(6,0) ,
                  "IN_DNNR_TYPE" DECIMAL(6,0) ,
                  "ACCT_BAL" DECIMAL(12,3) ,
                  "GUASHI_FLAG" VARCHAR(3) ,
                  "LOCK_STAT" VARCHAR(3) ,
                  "BLACK_STAT" VARCHAR(3) ,
                  "INVOLID_DATE" DECIMAL(8,0) ,
                  "ACTI_DATE" DECIMAL(8,0) ,
                  "COUT_LIMIT_FLAG" VARCHAR(3) ,
                  "LAST_USER_SVC_STA" DECIMAL(6,0) ,
                  "INNET_WAY" DECIMAL(8,0) ,
                  "NEW_UNUM_FLAG" DECIMAL(16,0) ,
                  "VALID_UNUM_FLAG" DECIMAL(16,0) ,
                  "LOCK_UNUM_FLAG" DECIMAL(16,0) ,
                  "OVER_LOCK_UNUM_FLAG" DECIMAL(16,0) ,
                  "CHARGE_UNUM_FLAG" DECIMAL(16,0) ,
                  "BILL_UNUM_FLAG" DECIMAL(16,0) ,
                  "FIRST_ACT_DATE" DECIMAL(8,0) ,
                  "IN_RESV_DATE" DECIMAL(8,0) ,
                  "IN_LOCK_DATE" DECIMAL(8,0) ,
                  "BRAND_TYPE_CDE" VARCHAR(2) )  
                 DISTRIBUTE BY HASH("MSISDN")  
                   IN "TBS_DW" INDEX IN "TBS_IDX" ;

-- DDL Statements for primary key on Table "PDW     "."T_DWU_PAR_IN_D"
ALTER TABLE "PDW     "."T_DWU_PAR_IN_D"
        ADD CONSTRAINT "P_KEY_1" PRIMARY KEY
                ("MSISDN",
                 "DEAL_DATE");
 
 
 
 
COMMIT WORK;
CONNECT RESET;
TERMINATE;

删除约束,也报数据页相关错误:
[DWE3:/db2home/db2inst1/fengsh]db2 alter table pdw.T_DWU_PAR_IN_D drop constraintP_KEY_1    
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL1007N  Error in finding pages for an object in a table space. 
SQLSTATE=58034
 
根据IBM 800支持,可通过使用db2dart工具将表进行标记为不可用后,进行删除:
==========
mark table bad
==========
首先,将有问题的表在数据库里面查询出具体对象,表id,表空间id,后续要使用到:
[DWE3:/db2home/db2inst1/fengsh]db2 -v "select substr(tabschema,1,20),substr(tabname,1,60) as tabname,t1.tableid,t2.tbspaceid from syscat.tables t1,syscat.tablespaces t2 where^J>
select substr(tabschema,1,20),substr(tabname,1,60) as tabname,t1.tableid,t2.tbspaceid from syscat.tables t1,syscat.tablespaces t2 where
t1.tbspaceid=t2.tbspaceid and t2.tbspace='TBS_DW'
1                    TABNAME                                                      TABLEID TBSPACEID 
-------------------- ------------------------------------------------------------ ------- -----------
PDW                  T_DWU_MARK_USER_TOT_M1009
                                    9344           8
PDW                  T_DWU_PAR_IN_D                                                   803           8
PDW                  T_DWU_PAR_USER_STAT_D                                           1190           8
PDW                  T_DWU_PAR_PPS_D_HIS                                             5143           8
PDW                  T_DWU_MARK_USER_TOT_M1008
                                     9358           8
  5 record(s) selected.
[DWE3:/db2home/db2inst1/fengsh]db2 "select TABNAME,TBSPACE,TABLEID,TBSPACEID from syscat.tables where tbspace='TBS_DW'"
TABNAME                                                                                                                          TBSPACE                                                                                                                          TABLEID TBSPACEID
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- ------- ---------
T_DWU_MARK_USER_TOT_M1009
                                                                                                     TBS_DW                                                                                                                              9344         8
T_DWU_PAR_IN_D                                                                                                                   TBS_DW                                                                                                                               803         8
T_DWU_PAR_USER_STAT_D                                                                                                            TBS_DW                                                                                                                              1190         8
T_DWU_PAR_PPS_D_HIS                                                                                                              TBS_DW                                                                                                                              5143         8
T_DWU_MARK_USER_TOT_M1008
                                                                                                      TBS_DW                                                                                                                              9358         8
  5 record(s) selected.
 

停掉所有应用程序连接,停数据库实例
[DWE3:/db2home/db2inst1/fengsh]db2 force applications all
DB20000I  The FORCE APPLICATION command completed successfully.
DB21024I  This command is asynchronous and may not be effective immediately.
[DWE3:/db2home/db2inst1/fengsh]db2stop
2012-01-13 14:35:31     0   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:35:31     1   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:35:32     2   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:35:33     3   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:35:34     5   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:35:34     4   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:35:35     7   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:35:35     6   0   SQL1064N  DB2STOP processing was successful.
SQL1064N  DB2STOP processing was successful.
[DWE3:/db2home/db2inst1/fengsh]ipclean         
ipclean: Removing DB2 engine and client's IPC resources for db2inst1.
 
使用db2dart /mt选项对表进行标记不可用,其中需输入IBM 800提供的操作密码:
[DWE3:/db2home/db2inst1/fengsh]db2dart bssdb /MT /tsi 8 /oi 1190
Please enter Table ID or name, tablespace ID, and password:
1190,8,********(需IBM 800提供密码)

   Mark table phase start.
   Set drop-pending (unavailable) state for table objects.
    Set state for DAT object 1190 tablespace 8.
   Modification for page (obj rel 0, pool rel 982568) of pool ID (8) obj ID (1190), written out to disk successfully.
      Modification written out successfully.
   Mark table phase end.
         The requested DB2DART processing has completed successfully!
                        Complete DB2DART report found in:
/db2home/db2inst1/sqllib/db2dump/DART0001/BSSDB.RPT

db2dart操作会自动生成一个日志:
[DWE3:/db2home/db2inst1/fengsh]more /db2home/db2inst1/sqllib/db2dump/DART0001/BSSDB.RPT
______________________________________________________________________________
 
        _______                    DART                   _______
   D a t a b a s e   A n a l y s i s   a n d   R e p o r t i n g   T o o l
                           IBM    DB2    6000
 
 
______________________________________________________________________________
DART (V9.1)  Report:
2012-01-13-14.46.51.222837
            Database Name: BSSDB
            Report name: BSSDB.RPT
            Old report back-up: BSSDB.BAK
            Database Subdirectory: /db2inst1/NODE0001/SQL00001
            Operational Mode: Database Inspection Only (INSPECT)
______________________________________________________________________________
------------------------------------------------------------------------------

Action option: MT
Table-object-ID: 1190; Tablespace-ID: 8
Connecting to Buffer Pool Services...
   Mark table phase start.
   Set drop-pending (unavailable) state for table objects.
    Set state for DAT object 1190 tablespace 8.
   Modification for page (obj rel 0, pool rel 982568) of pool ID (8) obj ID (1190), written out to disk successfully.
      Modification written out successfully.
   Mark table phase end.
                     ______________________________________
         The requested DB2DART processing has completed successfully!
                     All operation completed without error;
                   no problems were detected in the database.
                     ______________________________________
                        Complete DB2DART report found in:
/db2home/db2inst1/sqllib/db2dump/DART0001/BSSDB.RPT
    _______    D A R T    P R O C E S S I N G    C O M P L E T E    _______
 

完成表可用性修改后,重新启动数据库实例:
[DWE3:/db2home/db2inst1/fengsh]db2start
2012-01-13 14:49:18     1   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:49:18     3   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:49:18     5   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:49:19     2   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:49:19     4   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:49:19     0   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:49:20     7   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:49:20     6   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.
[DWE3:/db2home/db2inst1/fengsh]db2 connect to bssdb
   Database Connection Information
 Database server        = DB2/AIX64 9.1.9
 SQL authorization ID   = DB2INST1
 Local database alias   = BSSDB
 
再次执行删除表操作,表已经可正常完成删除:
[DWE3:/db2home/db2inst1/fengsh]db2 "drop table pdw.T_DWU_PAR_USER_STAT_D"
DB20000I  The SQL command completed successfully.
[DWE3:/db2home/db2inst1/fengsh]
 
依此方法,对其他表使用db2dart修改标记后,进行表的删除。
 
-----drop table
[DWE3:/db2home/db2inst1/fengsh]
[DWE3:/db2home/db2inst1/fengsh]db2 "drop table pdw.T_DWU_PAR_IN_D"
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL1007N  Error in finding pages for an object in a table space. 
SQLSTATE=58034
[DWE3:/db2home/db2inst1/fengsh]db2 force applications all
DB20000I  The FORCE APPLICATION command completed successfully.
DB21024I  This command is asynchronous and may not be effective immediately.
[DWE3:/db2home/db2inst1/fengsh]db2stop force
2012-01-13 14:53:11     4   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:53:11     1   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:53:11     0   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:53:12     3   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:53:12     5   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:53:12     2   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:53:12     6   0   SQL1064N  DB2STOP processing was successful.
2012-01-13 14:53:12     7   0   SQL1064N  DB2STOP processing was successful.
SQL1064N  DB2STOP processing was successful.
[DWE3:/db2home/db2inst1/fengsh]db2dart bssdb /MT /tsi 8 /oi 803
Please enter Table ID or name, tablespace ID, and password:
803,8,IPXWNZUK

   Mark table phase start.
   Set drop-pending (unavailable) state for table objects.
    Set state for DAT object 803 tablespace 8.
   Modification for page (obj rel 0, pool rel 30787568) of pool ID (8) obj ID (803), written out to disk successfully.
      Modification written out successfully.
    Set state for INX object 463 tablespace 11.
   Modification for page (obj rel 0, pool rel 6224) of pool ID (11) obj ID (463), written out to disk successfully.
      Modification written out successfully.
   Mark table phase end.
         The requested DB2DART processing has completed successfully!
                        Complete DB2DART report found in:
/db2home/db2inst1/sqllib/db2dump/DART0001/BSSDB.RPT
[DWE3:/db2home/db2inst1/fengsh]more /db2home/db2inst1/sqllib/db2dump/DART0001/BSSDB.RPT
______________________________________________________________________________
 
        _______                    DART                   _______
   D a t a b a s e   A n a l y s i s   a n d   R e p o r t i n g   T o o l
                           IBM    DB2    6000
 
 
______________________________________________________________________________
DART (V9.1)  Report:
2012-01-13-14.54.06.182987
            Database Name: BSSDB
            Report name: BSSDB.RPT
            Old report back-up: BSSDB.BAK
            Database Subdirectory: /db2inst1/NODE0001/SQL00001
            Operational Mode: Database Inspection Only (INSPECT)
______________________________________________________________________________
------------------------------------------------------------------------------

Action option: MT
Table-object-ID: 803; Tablespace-ID: 8
Connecting to Buffer Pool Services...
   Mark table phase start.
   Set drop-pending (unavailable) state for table objects.
    Set state for DAT object 803 tablespace 8.
   Modification for page (obj rel 0, pool rel 30787568) of pool ID (8) obj ID (803), written out to disk successfully.
      Modification written out successfully.
    Set state for INX object 463 tablespace 11.
   Modification for page (obj rel 0, pool rel 6224) of pool ID (11) obj ID (463), written out to disk successfully.
      Modification written out successfully.
   Mark table phase end.
                     ______________________________________
         The requested DB2DART processing has completed successfully!
                     All operation completed without error;
                   no problems were detected in the database.
                     ______________________________________
                        Complete DB2DART report found in:
/db2home/db2inst1/sqllib/db2dump/DART0001/BSSDB.RPT
    _______    D A R T    P R O C E S S I N G    C O M P L E T E    _______
[DWE3:/db2home/db2inst1/fengsh]db2start
2012-01-13 14:54:29     3   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:54:29     1   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:54:30     0   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:54:30     5   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:54:30     2   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:54:30     7   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:54:30     4   0   SQL1063N  DB2START processing was successful.
2012-01-13 14:54:32     6   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.
[DWE3:/db2home/db2inst1/fengsh]db2 connect to bssdb
   Database Connection Information
 Database server        = DB2/AIX64 9.1.9
 SQL authorization ID   = DB2INST1
 Local database alias   = BSSDB
[DWE3:/db2home/db2inst1/fengsh]db2 "drop table pdw.T_DWU_PAR_IN_D"
DB20000I  The SQL command completed successfully.
[DWE3:/db2home/db2inst1/fengsh]
[DWE3:/db2home/db2inst1/fengsh]
[DWE3:/db2home/db2inst1/fengsh]db2 "drop tablespace tbs_dw"
DB20000I  The SQL command completed successfully.
[DWE3:/db2home/db2inst1/fengsh]
 

三、总结:
1)db2dart工具是非常使用的工具,可用于数据库数据完整性验证,可用于对数据库物理页的操作等。
2)db2dart工具涉及物理数据页的修改,需在数据库实例停止的情况下执行
3)db2dart /mt用于对表的进行标记时,需要使用IBM 800提供操作密码

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

0

添加新评论9 条评论

詹氏归来詹氏归来数据库管理员IT公司
2012-08-24 10:16
哦,学习,学习,虽然还没有达到这个境界
09003401190900340119其它桂林电子科技大学
2012-04-08 22:50
学习!
fengshfengsh系统工程师电信行业
2012-04-06 16:16
这个案例上我是在删除表空间过程中遇到的问题,不需此表数据的.
在这表损坏情况下,本身表是无法正常访问了,如果找回数据,一般只能通过db2dart工具挖了或通过备份找回了.
xu5762173xu5762173数据库管理员Ess
2012-04-06 12:44
再问一下,这样删除之前,如果表不可以被访问,表的数据如何保护?
tiancheng_2011tiancheng_2011数据库管理员北京华胜天成
2012-03-29 18:16
问一下,表损坏是什么原因造成的呢???
梦魂梦魂软件开发工程师泓智科技
2012-03-27 22:26
学习

2012-03-25 10:55
好东西 学习了
camydcamyd数据库管理员中储粮
2012-03-20 16:18
非常有用,有时间试验下。
weiboweibo副总北京象前行信息科技有限公司
2012-03-19 22:06
感谢分享,顶一个先!
Ctrl+Enter 发表

作者其他文章

X社区推广