home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Latest versionsfixlist
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

DB2 - Problem description

Problem IC71075 Status: Closed

ONLINE BACKUP CAN BACKUP AN INDEX IN A PARTIALLY INCONSISTENT STATE

product:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problem description:
Space Map Page can be captured before the drop index while other 
data backed up indicates that that index is already dropped. For 
example, consider following record in the log file: 
 
Record 271143    Log Page Offset = 05AA = 1450 
                Log File Offset = 025855AA = 39343530 
                     Record LSN = 0000 001C 4ED3 F5AA 
                    Record Size = 0033 = 51 
                    Record Type = 4E = Normal 
               Log Header Flags = 0000 
                     Record TID = 0000007AFBFD 
               Back Pointer LSN = 001C 4ED3 F590 
                Originator Code = 02 = Index Manager 
                    Function ID = 6B = 107 : GETPAGE_DP 
                        Pool ID = 24 Object ID = 911 Index 
Object Type = x1 
                 Parent Pool ID = 8 Parent Object ID = 919 
                Index Root Page = 0057E327 = 5759783 
                 Index SMP Page = x0010FAE0 = 1112800 
                     Index Page = x005A5ABF = 5921471 
     Location of Byte in Bitmap = 20 
               Bit Pair in Byte = 1 
                       smlFlags = 41 = SM_LOGF_EXTEND 
SM_LOGF_UPDATE_NLEAF 
                     smNewState = 10 = SQLI_SMP2_USED 
                smOriginalState = 00 = SQLI_SMP2_NOTUSED 
 
Here, attempt to redo this GETPAGE_DP log record should change 
the state from 0x00 (SQLI_SMP2_NOTUSED) to 0x10 
(SQLI_SMP2_USED). But since the index is dropped already index 
manager will skip replaying this log record because of a change 
made in 9.5 to log the root page ID with the GETPAGE_DP log 
record as oppose to SQLI_GTPG_LOG_ROOTPG_0 (i.e. 0). As a 
result, when index manager replay this log record it detect that 
this index is already dropped and don't trying to replay it 
(even it should).
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* All users running DB2 v9.7 FP3 and earlier.                  * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* Space Map Page can be captured before the drop index while   * 
* other                                                        * 
* data backed up indicates that that index is already dropped. * 
* For                                                          * 
* example, consider following record in the log file:          * 
*                                                              * 
*                                                              * 
*                                                              * 
* Record 271143    Log Page Offset = 05AA = 1450               * 
*                                                              * 
* Log File Offset = 025855AA = 39343530                        * 
*                                                              * 
* Record LSN = 0000 001C 4ED3 F5AA                             * 
*                                                              * 
* Record Size = 0033 = 51                                      * 
*                                                              * 
* Record Type = 4E = Normal                                    * 
*                                                              * 
* Log Header Flags = 0000                                      * 
*                                                              * 
* Record TID = 0000007AFBFD                                    * 
*                                                              * 
* Back Pointer LSN = 001C 4ED3 F590                            * 
*                                                              * 
* Originator Code = 02 = Index Manager                         * 
*                                                              * 
* Function ID = 6B = 107 : GETPAGE_DP                          * 
*                                                              * 
* Pool ID = 24 Object ID = 911 Index                           * 
*                                                              * 
* Object Type = x1                                             * 
*                                                              * 
* Parent Pool ID = 8 Parent Object ID = 919                    * 
*                                                              * 
* Index Root Page = 0057E327 = 5759783                         * 
*                                                              * 
* Index SMP Page = x0010FAE0 = 1112800                         * 
*                                                              * 
* Index Page = x005A5ABF = 5921471                             * 
*                                                              * 
* Location of Byte in Bitmap = 20                              * 
*                                                              * 
* Bit Pair in Byte = 1                                         * 
*                                                              * 
* smlFlags = 41 = SM_LOGF_EXTEND                               * 
*                                                              * 
* SM_LOGF_UPDATE_NLEAF                                         * 
*                                                              * 
* smNewState = 10 = SQLI_SMP2_USED                             * 
*                                                              * 
* smOriginalState = 00 = SQLI_SMP2_NOTUSED                     * 
*                                                              * 
*                                                              * 
*                                                              * 
* Attempt to redo GETPAGE_DP log record should change          * 
* the state from 0x00 (SQLI_SMP2_NOTUSED) to 0x10              * 
*                                                              * 
* (SQLI_SMP2_USED). But since the index is dropped already     * 
* index                                                        * 
* manager will skip replaying this log record because of a     * 
* change                                                       * 
* made in 9.5 to log the root page ID with the GETPAGE_DP log  * 
*                                                              * 
* record as oppose to SQLI_GTPG_LOG_ROOTPG_0 (i.e. 0). As a    * 
*                                                              * 
* result, when index manager replay this log record it detect  * 
* that                                                         * 
* this index is already dropped and don't trying to replay it  * 
*                                                              * 
* (even it should).                                            * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to DB2 v9.7 FP4.                                     * 
****************************************************************
Local Fix:
You can recover from this problem by using db2dart to mark 
corresponding index as invalid and then connecting to the 
database and running a select (any select) against this table 
that index belongs to.
available fix packs:
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 6 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Solution
Problem was fixed in DB2 v9.7 FP4
Workaround
You can recover from this problem by using db2dart to mark 
corresponding index as invalid and then connecting to the 
database and running a select (any select) against this table 
that index belongs to.
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
10.09.2010
09.05.2011
09.05.2011
Problem solved at the following versions (IBM BugInfos)
9.7.FP4
Problem solved according to the fixlist(s) of the following version(s)
9.7.0.4 FixList