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

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*