DB2 - Problem description
Problem IC75312 | Status: Closed |
REDEFINING TEMP SMS TABLESPACE TO USE AUTOMATIC STORAGE WILL NOT SUCCEED UNTIL SECOND CONNECT | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
A) When doing a redirected restore if we redefine a TEMP SMS tablespace to use Automatic storage, the first connection will bring the tablespace offline if the old directory is not available. The tablespace will only be redefined to use automatic storage on the second connect to the database. To reproduce: 1. database sample (db2sampl) 2. db2 "create user temporary tablespace test_tbsp managed by system using ('/tmp/tbsp_cont')" 3. db2 "backup database sample to /tmp/BK" 4. db2 restore database sample from /tmp/BK redirect generate script red.out 5. The script contains the following: -- **************************************************************** ************* -- ** Tablespace name = TEST_TBSP -- ** Tablespace ID = 7 -- ** Tablespace Type = System managed space -- ** Tablespace Content Type = User Temporary data -- ** Tablespace Page size (bytes) = 8192 -- ** Tablespace Extent size (pages) = 32 -- ** Using automatic storage = No -- ** Total number of pages = 1 -- **************************************************************** ************* SET TABLESPACE CONTAINERS FOR 7 -- IGNORE ROLLFORWARD CONTAINER OPERATIONS USING ( PATH '/tmp/tbsp_cont' ); Changed it to SET TABLESPACE CONTAINERS FOR 7 using Automatic storage; 6. When the restore script is run we get $ db2 "set tablespace containers for 7 using automatic storage" DB20000I The SET TABLESPACE CONTAINERS command completed successfully. When we run the restore we do not fail, even if the path /tmp/tbsp_cont does not exist in the system. If the path /tmp/tbsp_cont exists in the system, then we will get the tablespace ok but if the path does not exist then we will get this tablespace offline when connecting to the database for the first time after the restore: db2 connect to sample EDUID : 6006 EDUNAME: db2agent (SAMPLE) FUNCTION: DB2 UDB, buffer pool services, sqlbStartPoolsErrorHandling, probe:65 MESSAGE : ADM6081W The table space "TEST_TBSP" (ID "7") is in the OFFLINE state and is not accessible. The table space state is 0x"00004000". Refer to the documentation for SQLCODE -293. SQL0293N Error accessing a table space container. db2 list tablespace containers for 7 show detail Tablespace Containers for Tablespace 7 Container ID = 0 Name = /tmp/tbsp_cont Type = Path Total pages = 0 Useable pages = 0 Accessible = No Tablespace ID = 7 Name = TEST_TBSP Type = System managed space Contents = User Temporary data State = 0x4000 Detailed explanation: Offline We need to terminate the connection to the database and connect back to get the Automatic path defined for this tablespace B) When migrating a database using a restore operation, redefining SMS temp space to use Automatic Storage, if the old path for the SMS temp space is not available the migration will fail with After step 6) above (having redefined the containers): RESTORE DATABASE SAMPLE FROM '/home/mariaj/TEMP/BK' TAKEN AT 20110328074610 INTO SAMPLE REDIRECT WITHOUT ROLLING FORWARD SQL0902C A system error (reason code = "") occurred. Subsequent SQL statements cannot be processed. SQLSTATE=58005 Upgrade database command will also fail with : $ db2 upgrade database sample SQL0902C A system error (reason code = "") occurred. Subsequent SQL statements cannot be processed. SQLSTATE=58005 The migration will only work if we have the old TEMP SMS path with its original SQLTAG.NAM file available in the system. Once the upgrade has finished the TEMP SMS will be redefined as Automatic Storage on the first connection. It is important to note that if we are restoring into an already existing database to proceed with the upgrade, then the error -902 is expected behaviour: In order to be able to restore into an existing database, we must initiate an implicit connection to the existing database first. This is well before the restore can take place. If the existing database is from an older release, the first connect will initiate an automatic database upgrade. The database upgrade cannot proceed if one of the tablespace containers is misssing, so the -902 is expected. The workaround is to drop the existing database and initiate a fresh restore. In this case, the implicit connect will not be needed. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * ALL * **************************************************************** * PROBLEM DESCRIPTION: * * On first connection to the database we redefine all * * Temporary SMS Automatic storage tablespace. * * Redefinition does not take place just after a restore, we * * will clear the restore flag on the second activation of the * * database. * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 Version 9.7 and Fix Pack 5 * **************************************************************** | |
Local Fix: | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows | |
Solution | |
Problem was first fixed in DB2 Version 9.7 and Fix Pack 5 | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 28.03.2011 09.12.2011 21.05.2012 |
Problem solved at the following versions (IBM BugInfos) | |
9.7. | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.5 |