Sunday, December 14, 2008

DSN1COPY info and object id(OBIDs) translation

DSN1COPY is useful for retsoring from same/other DB2 subsystem.

DSN1COPY is a very useful utility which helps you copy:
1) DSN1copy sequential datasets to DB2 VSAM datasets
2) DB2 VSAM datasets to sequential datasets
3) DB2 image copy datasets to DB2 VSAM datasets
4) DSN1copy sequential datasets to other sequential datasets
5) DB2 VSAM datasets to other DB2 VSAM datasets

This also provides other facilities:
1) Print hexadecimal dumps of DB2 data sets and databases
2) Check the validity of data or index pages, including dictionary pages for compressed data
3) Transalte database object identifiers (OBIDs) to enable moving datasts between different systems.

This utility is also compatible with LOB tablespaces. You can specify LOB keyword and omit the SEGMENT and INLCOPY keywords.

Here are the complete job which will help you to invoke this utility. The actual DSN1COPY step perfroms the copy from the image copy dataset to the target VSAM DB2 dataset.

//TSG10Y JOB ,'RF-DSALAGGK',NOTIFY=TSG10,CLASS=L,MSGCLASS=O,
// MSGLEVEL=(1,1),COND=(7,LT)
//*==============================================================
//LOADDUMM EXEC PGM=DSNUTILB,REGION=2M,
// PARM='DSN2,TSG10LD,'
//STEPLIB DD DSN=SYS1.DSN2.SDSNLOAD,DISP=SHR
//*==============================================================
//* PARM='DSN2,TSG10LD,RESTART' USE FOR RESTART
//*==============================================================
//SYSPRINT DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SORTWK01 DD DSN=TSG10.SORTWK01,
// DISP=(,DELETE),
// SPACE=(CYL,(5,5),,,ROUND),
// UNIT=SYSDA
//SORTWK02 DD DSN=TSG10.SORTWK02,
// DISP=(,DELETE),
// SPACE=(CYL,(5,5),,,ROUND),
// UNIT=SYSDA
//SORTWK03 DD DSN=TSG10.SORTWK03,
// DISP=(,DELETE),
// SPACE=(CYL,(5,5),,,ROUND),
// UNIT=SYSDA
//SORTWK04 DD DSN=TSG10.SORTWK04,
// DISP=(,DELETE),
// SPACE=(CYL,(5,5),,,ROUND),
// UNIT=SYSDA
//SPSSW DD DUMMY
//SYSUT1 DD DSN=TSG10.SYSUT1,
// DISP=(,DELETE),
// SPACE=(CYL,(5,5),,,ROUND),
// UNIT=SYSDA
//SYSMAP DD DSN=TSG10.SYSMAP,
// DISP=(,DELETE),
// SPACE=(CYL,(5,5),,,ROUND),
// UNIT=SYSDA
//SYSERR DD DSN=TSG10.SYSERR,
// DISP=(,DELETE),
// SPACE=(CYL,(5,5),,,ROUND),
// UNIT=SYSDA
//SORTOUT DD DSN=TSG10.SORTOUT,
// DISP=(,DELETE),
// SPACE=(CYL,(5,5),,,ROUND),
// UNIT=SYSDA
//SYSIN DD *
LOAD DATA INDDN SPSSW REPLACE LOG NO
INTO TABLE SPU11.T1PSSW
REPAIR OBJECT
SET TABLESPACE DSALAGGK.SPSSW NOCOPYPEND
//*==========================================
//* STOP TARGET DB2 TABLESPACES
//*==========================================
//STOP EXEC PGM=IKJEFT01,DYNAMNBR=20
//STEPLIB DD DSN=SYS1.DSN2.SDSNLOAD,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN2) RETRY(4)
-STOP DATABASE(DSALAGGK) SPACENAM(SPSSW)
//* IBM DSN1COPY FOR TABLESPACE SPSSW
//*==========================================
//SPSSW EXEC PGM=DSN1COPY,
// PARM='FULLCOPY,NUMPARTS(14),OBIDXLAT,RESET'
//SYSUT1 DD DSN=DR1W.DHGDG.DSALAGG1.SPSSW.F001.G2754V00,
// LABEL=(1,SL),VOL=(,RETAIN),
// DISP=OLD
//SYSUT2 DD DSN=DSN2.DSNDBD.DSALAGGK.SPSSW.I0001.A001,
// DISP=OLD
//SYSPRINT DD SYSOUT=*
//SYSXLAT DD *
423,1069
37,12
38,22
//*========================================================
//* START TARGET DB2 TABLESPACES
//*========================================================
//START EXEC PGM=IKJEFT01,DYNAMNBR=20
//STEPLIB DD DSN=SYS1.DSN2.SDSNLOAD,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN2) RETRY(4)
-START DATABASE(DSALAGGK) SPACENAM(SPSSW) ACCESS(FORCE)
//*========================================================
//* REBUILD THE INDEXES
//*==========================================================
//RECINDX EXEC PROC=PL0002,REGN=20M,RESTART=RESTART(BYPASS),
// SUBSYS=DSN2,COND=(4,LT)
//PL000201.ST02MSG DD SYSOUT=U
//PL000201.SL02MSG DD SYSOUT=U
//PL000201.SYSIN DD *
REBUILD INDEX (ALL) TABLESPACE DSALAGGK.SPSSW
ALLMSGS
ESTIMATED-KEYS 99999999
MAXTASKS 2
SORTNUM 4
SORTDEVT SYSDA
SPACE-DEFN YES
STARTUP-ACCESS FORCE
//*==========================================================
//* RUNSTATS TARGET ENVIRONMENT
//*==========================================================
//RUNSTATS EXEC PGM=DSNUTILB,REGION=2M,COND=(4,LT),
// PARM='DSN2,DSALAGGK,'
//STEPLIB DD DSN=SYS1.DSN2.SDSNLOAD,DISP=SHR
//*==========================================================
//* PARM='DSN2,DSALAGGK,RESTART' USE FOR RESTART
//*==============================================================
//SYSPRINT DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
RUNSTATS TABLESPACE DSALAGGK.SPSSW INDEX(ALL) SHRLEVEL REFERENCE
/*


//SYSXLAT DD *
423,1069 DBID PROD,TEST OF TABLESPACE
37,12 PSID PROD,TEST OF TABLESPACE
38,22 OBID PROD, TEST OF TABLE
SELECT DBID FROM SYSIBM.SYSTABLESPACE
WHERE NAME = 'XXXXX' AND
DBNAME = 'XXXXXXXX';
SELECT PSID FROM SYSIBM.SYSTABLESPACE
WHERE NAME = 'XXXXX' AND
DBNAME = 'XXXXXXXX';
SELECT OBID FROM SYSIBM.SYSTABLES
WHERE NAME = 'XXXXX' AND
DBNAME = 'XXXXXXXX';


Note: This utility will not work well if you have more than one table in a single tablespace.


Cheers...
Prakash C. Singh
IBM Certified DB2 DBA

No comments: