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 | |
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 |