Example: recovering a single HALDB partition in a non-data-sharing environment

To perform a full forward recovery for a single HALDB partition, specify the partition name instead of the HALDB master database name in the DBD parameter of the DBRC command GENJCL.RECOV.

The GENJCL.RECOV command generates the JCL to recover only the specified partition. After the DBDSs are recovered, you must rebuild the primary index and the ILDS.

To recover a single partition in a PHIDAM database:

Procedure

  1. If any OLDS contains database change records that are required for recovery, issue the DBRC command GENJCL.ARCHIVE to generate the necessary JCL to run the Log Archive utility (DFSUARC0).
  2. Run the Log Archive utility. The Log Archive utility archives the records in the OLDS to an SLDS.
  3. Delete and define the OSAM partition database data sets.
  4. Issue the GENJCL.RECOV command, specifying the partition name in the DBD parameter to generate the required JCL for recovery of the database data sets of the partition. The JCL identifies the correct image copies to use, the correct logs, the correct ddnames, and the correct time stamps.
  5. Run the Database Recovery utility (DFSURDB0) on the partition by executing the JCL that is generated by the GENJCL.RECOV command. For the specified partition, the Database Recovery utility recovers the database data sets from the image copies and the database changes that are recorded in the logs.
  6. Delete and define both the primary index data set and the ILDS.
  7. Run the HALDB Index/ILDS Rebuild utility (DFSPREC0) to rebuild both the primary index and the ILDS in the partition. Specify BOTHF to select the free space option of the HALDB Index/ILDS Rebuild utility

    The free space option uses VSAM load mode to include the free space called for in the FREESPACE parameter of the DEFINE CLUSTER command.

    The HALDB Index/ILDS Rebuild utility rebuilds the primary index data sets and the ILDS of one partition at a time; however, you can run multiple instances of the utility on multiple partitions in parallel.

The following code shows an example of the GENJCL.RECOV command that generates the JCL to recover a single HALDB partition.

//DBRC     EXEC PGM=DSPURX00
//STEPLIB  DD DISP=SHR,DSN=IMS.SDFSRESL
//         DD DISP=SHR,DSN=IMS.MDALIB
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//IMS      DD DISP=SHR,DSN=IMS.DBDLIB
//JCLPDS   DD DISP=SHR,DSN=IMS.PROCLIB
//JCLOUT   DD DISP=SHR,DSN=JOUKO4.HALDB.CNTL(RECOVOUT)
//JCLOUTS  DD SYSOUT=*
//SYSIN    DD *
  GENJCL.RECOV NOJOB DBD(NORDDB1) MEMBER(RECOVJCL)
/*

The following code shows the JCL that is generated by the GENJCL.RECOV command to recover a single HALDB partition.

//RCV1 EXEC PGM=DFSRRC00,
//             PARM='UDR,DFSURDB0,NORDDB,,,,,,,,,,,Y,,,,,,,,'
//*
//STEPLIB  DD DISP=SHR,DSN=IMS.SDFSRESL
//         DD DISP=SHR,DSN=IMS.MDALIB
//IMS      DD DISP=SHR,DSN=IMS.DBDLIB
//SYSPRINT  DD SYSOUT=*
//SYSUDUMP  DD SYSOUT=*
//NORDDB1A    DD DSN=IMSPSA.IM0A.NORDDB.A00001,
//             DISP=OLD,
//             DCB=BUFNO=10
//DFSUDUMP  DD DSN=IMSPSA.NORDDB1.IMCOPY,
//             DISP=OLD,DCB=BUFNO=10
//DFSVDUMP  DD DUMMY
//DFSUCUM   DD DUMMY
//DFSULOG   DD DUMMY
//DFSVSAMP DD DSN=IMS.PROCLIB(DFSVSM0S),DISP=SHR
//SYSIN    DD *
S NORDDB NORDDB1A
/*