Overview of the Clone function
The Clone function creates an internally consistent copy of a database or a list of databases.
A database clone includes all updates prior to a point in time. For databases updated by an online IMS system with CRF installed and active, the database clone contains all updates made prior to the time the clone operation finished. This is a short time before the end of the Clone function's job step termination.
The CLONE job step runs either a copy operation only, or performs a full reorganization. In general, a full reorganization occurs only when:
- Creating a clean database copy requires a full reorganization.
- User parameters require a full reorganization to support their functions.
CLONE:
- Supports the GROUP command as a method of creating an internally consistent set of related databases
This includes logically related databases. - Supports HALDB, PDF, and regular full-function databases
HALDB and PDF databases always use the full reorganization cloning method. - Always includes secondary indexes in the set of DBDs included in the clone operation
JCL requirements
For every database data set you are cloning, you must specify a new database data set name. You must specify the new DBDS or PART data set names in a //BMC$DBRC DD. The BMC$DBRC DD must include INIT.DB, INIT.DBDS, and INIT.PART DBRC commands for all cloned database data sets. These DBRC INIT commands:
- Can be used in a subsequent job step to add the cloned databases to a different set of RECON data sets
- Describe the RECON environment used for the output CLONE data sets
- Do not change any of the contents of the RECON data sets used in the CLONE job step
The BMCRECON DD is not supported when running the CLONE command.
Sample JCL for the Clone function
//*
//**********************************************************
//CLONE EXEC PGM=DLIGENTR,REGION=0M
//STEPLIB DD DSN=BMC.DBULIB,DISP=SHR
// DD DSN=IMSVS.R13.RESLIB,DISP=SHR
//DFSRESLB DD DSN=IMSVS.R13.RESLIB,DISP=SHR
//IMS DD DSN=BMC.TEST.DBDLIB,DISP=SHR
//RECON1 DD DISP=SHR,DSN=BMC.TEST.R13.RECON1
//RECON2 DD DISP=SHR,DSN=BMC.TEST.R13.RECON2
//RECON3 DD DISP=SHR,DSN=BMC.TEST.R13.RECON3
//BMC$DBRC DD *
INIT.DB DBD(HID00002) -
SHARELVL(0)
INIT.DBDS DBD(HID00002) DDN(HID000D2) GENMAX(002) -
DSN(BMC.CLON.HID00002.HID000D2)
INIT.DB DBD(HIDIDX02) -
SHARELVL(0)
INIT.DBDS DBD(HIDIDX02) DDN(HIDIDXD2) GENMAX(002) -
DSN(BMC.CLON.HIDIDX02.HIDIDXD2)
INIT.DB DBD(HIDSIX02) -
SHARELVL(0)
INIT.DBDS DBD(HIDSIX02) DDN(HIDSIXD2) GENMAX(002) -
DSN(BMC.CLON.HIDSIX02.HIDSIXD2)
INIT.DB DBD(HIDSIX03) -
SHARELVL(0)
INIT.DBDS DBD(HIDSIX03) DDN(HIDSIXD3) GENMAX(002) -
DSN(BMC.CLON.HIDSIX03.HIDSIXD3)
//BMCMSG DD SYSOUT=*
//BMCPRINT DD SYSOUT=*
//BMCTRACE DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//PLUSIN DD *
CLONE DBD(HID00002) -
IDCAMS(MODEL) -
MODELVOL((*,DEV080)) -
MODELSPA((*,C,5,5))
The DBRC INIT commands can be created by invoking the RECON Extract function. Each READRCN command requires a separate job step, but specifying RELATED(Y) generates INIT commands for all required indexes and for all logically related databases.
Sample RECON Extract JCL
//* CLONE/RSF EXTRACT EXAMPLES
//*********************************************************
//FULLFUNC EXEC PGM=DLIGENTR,REGION=0M
//STEPLIB DD DSN=BMC.DBULIB,DISP=SHR
// DD DSN=IMSVS.R13.RESLIB,DISP=SHR
//IMS DD DSN=BMC.TEST.DBDLIB,DISP=SHR
//RECON1 DD DISP=SHR,DSN=BMC.TEST.R13.RECON1
//RECON2 DD DISP=SHR,DSN=BMC.TEST.R13.RECON2
//RECON3 DD DISP=SHR,DSN=BMC.TEST.R13.RECON3
//BMCTRACE DD SYSOUT=*
//RCNOUT DD SYSOUT=*
//PLUSIN DD *
READRCN DBRC(Y) DBD(HID00002) RELATED(Y) MVDBDS(Y) -
FFDSN(BMC.CLON.&DBDNAME.&DDNAME)
//*********************************************************
//HALDB EXEC PGM=DLIGENTR,REGION=0M
//STEPLIB DD DSN=BMC.DBULIB,DISP=SHR
// DD DSN=IMSVS.R13.RESLIB,DISP=SHR
//IMS DD DSN=BMC.TEST.DBDLIB,DISP=SHR
//RECON1 DD DISP=SHR,DSN=BMC.TEST.R13.RECON1
//RECON2 DD DISP=SHR,DSN=BMC.TEST.R13.RECON2
//RECON3 DD DISP=SHR,DSN=BMC.TEST.R13.RECON3
//BMCTRACE DD SYSOUT=*
//RCNOUT DD SYSOUT=*
//PLUSIN DD *
READRCN DBRC(Y) DBD(PHID002) RELATED(Y) MVDBDS(Y) -
DSNPREFX(BMC.CLON.&DBDNAME.&DDNAME)
Related topic