Db2 Cloning Tool Version Mismatch Processing
Db2 Online/Pending alters are a great thing for Db2 schema evolution. This does, however, create an interesting challenge for application cloning operations. This results in rows being versioned within the pageset, and can cause compatibility checking issues between the source and target system. In a nutshell:
CREATE TABLE T1 (COL1 INT) + ALTER TABLE T1 ADD COLUMN COL2 CHAR(10)
is not the same as
CREATE TABLE T1 (COL1 INT) + ALTER TABLE T1 ADD COLUMN COL2 CHAR(10)
Logically the structures look the same when viewing the source and target catalogs, but physically, row versioning makes these structures different.
Db2 has released several PTFs for enhanced versioning information in V11 & V12. The Cloning Tool has also delivered PTFs to take advantage of this enhanced versioning information. However, unless you’ve reviewed the hold data for these PTFs, enacting these enhancements may not be evident.
Technotes have been created to help with this topic. Please see:
- For V11: http://www-01.ibm.com/support/docview.wss?uid=swg22015681
- For V12: http://www-01.ibm.com/support/docview.wss?uid=swg22015834
Db2 11 for z/OS customers should make sure to set the Cloning Tool parameter DB2V11_EPIC37738_INSTALLED=Y. This should be placed in the DSN_COPY_OPTIONS section of the CKZINI member, in the SCKZPARM library. If you’re unsure of your library name or member name, look in any Source job output for library/member associated with the CKZINI DD.
When this parameter is being picked up by the Source, you’ll see the following CKZ53229I message:
Also note that there’s a section on how the Cloning Tool can indicate which source spaces need to have REPAIR INSERTVERSIONPAGES run on them. Watch for more information on this topic. IBM is working on providing assistance with this circumstance. I’ll post more on this topic when the information is available.
One more thing: as a general best practice, set TARGET-JOB-REPAIR-EXECUTE=Y & TARGET-JOB-REPAIR-SELECT=Y, in the Source job, SET Command screen. This allows the target job to be able to repair the target when necessary to complete clone processing. It’s not only a best practice, it is required to enable everything mentioned above.
0 Comments