The Recovery utility can restore image copy databases and/or the most recent database updates performed just before a hardware or a system failure.
To restore database image copies, the Recovery utility accepts as input the name and location of each database backup file. Optionally, before running this utility, run the Image Restore utility to copy any database image copy to the current location. To update a database with the most recent changes, the relevant log files must be available on the path specified by the ES_IMS_TLOG_PATH environment variable. The Recovery utility determines the relevant log files required to recover each database.
The utility can recover up to 200 databases in each JCL job. Be aware, however, if the date and timestamp on any given database is significantly older than the other specified databases, we recommend that you recover that database separately to save time. To do otherwise could cause the utility to process a large number of log files unnecessarily, ultimately degrading performance.
By default, when one execution of a database forward recovery job specifies multiple databases, and the Recovery utility cannot recover one or more of the databases specified, it attempts to recover the remaining databases. This can happen, for example, when a required forward recovery log file is missing. In this case, the Recovery utility recovers the databases for which all log files are found. Upon completion of the job, the job SYSOUT dataset contains information indicating the databases recovered and those not recovered.
The Recovery utility copies database images as specified in the DD statements to the current location before applying the updates from the forward recovery log files. The JCL includes:
//STOP01 EXEC PGM=MFDBUJCL,PARM='/STO DB BNKTXN' //SYSOUT DD SYSOUT=* //STOP03 EXEC PGM=MFDBUJCL,PARM='/STO DB BNKCUST' //SYSOUT DD SYSOUT=* //STOP04 EXEC PGM=MFDBUJCL,PARM='/STO DB BNKACC'
//RECOVER EXEC PGM=MFDBUJCL,PARM='RECOVER,SERVER=IMSBANK'
//BNKIC1 DD DSN=BNKTXN.IC.GDG(0),DISP=OLD //BNKIC2 DD DSN=BNKTXNX1.IC.GDG(0),DISP=OLD //BNKIC3 DD DSN=BNKCUST.IC.GDG(0),DISP=OLD //BNKIC4 DD DSN=BNKACC.IC.GDG(0),DISP=OLD //BNKIC5 DD DSN=BNKTXNX2.IC.GDG(0),DISP=OLD . . . //SYSIN DD * BNKTXN BNKIC1 BNKTXNX1 BNKIC2 BNKCUST BNKIC3 BNKACC BNKIC4 BNKTXNX2 BNKIC5
//SYSIN DD * BNKTXN BNKTXNX1 BNKTXNX2 BNKCUST BNKACC
The following examples show the complete JCL required to execute the Recovery utility:
Example 1 - Restore database image copies, and database updates from forward recovery log files
//RUNGDG JOB 'RECOVERY',CLASS=A,MSGCLASS=A //* //STOP01 EXEC PGM=MFDBUJCL,PARM='/STO DB BNKTXN' //SYSOUT DD SYSOUT=* //STOP03 EXEC PGM=MFDBUJCL,PARM='/STO DB BNKCUST' //SYSOUT DD SYSOUT=* //STOP04 EXEC PGM=MFDBUJCL,PARM='/STO DB BNKACC' //SYSOUT DD SYSOUT=* //* //* //RECOVER EXEC PGM=MFDBUJCL,PARM='RECOVER,SERVER=IMSBANK' //* //SYSOUT DD SYSOUT=* //BNKIC1 DD DSN=BNKTXN.IC.GDG(0),DISP=OLD //BNKIC2 DD DSN=BNKTXNX1.IC.GDG(0),DISP=OLD //BNKIC3 DD DSN=BNKCUST.IC.GDG(0),DISP=OLD //BNKIC4 DD DSN=BNKACC.IC.GDG(0),DISP=OLD //BNKIC5 DD DSN=BNKTXNX2.IC.GDG(0),DISP=OLD //SYSIN DD * BNKTXN BNKIC1 BNKTXNX1 BNKIC2 BNKCUST BNKIC3 BNKACC BNKIC4 BNKTXNX2 BNKIC5 /* //* //START01 EXEC PGM=MFDBUJCL,PARM='/STA DB BNKTXN' //SYSOUT DD SYSOUT=* //START04 EXEC PGM=MFDBUJCL,PARM='/STA DB BNKCUST' //SYSOUT DD SYSOUT=* //START05 EXEC PGM=MFDBUJCL,PARM='/STA DB BNKACC' //SYSOUT DD SYSOUT=* //*
Example 2 - Restore only database updates from forward recovery log files
//RUNGDG JOB 'RECOVERY',CLASS=A,MSGCLASS=A //* //STOP01 EXEC PGM=MFDBUJCL,PARM='/STO DB BNKTXN' //SYSOUT DD SYSOUT=* //STOP03 EXEC PGM=MFDBUJCL,PARM='/STO DB BNKCUST' //SYSOUT DD SYSOUT=* //STOP04 EXEC PGM=MFDBUJCL,PARM='/STO DB BNKACC' //SYSOUT DD SYSOUT=* //* //* //RECOVER EXEC PGM=MFDBUJCL,PARM='RECOVER,SERVER=IMSBANK' //* //SYSOUT DD SYSOUT=* //SYSIN DD * BNKTXN BNKTXNX1 BNKTXNX2 BNKCUST BNKACC /* //* //START01 EXEC PGM=MFDBUJCL,PARM='/STA DB BNKTXN' //SYSOUT DD SYSOUT=* //START04 EXEC PGM=MFDBUJCL,PARM='/STA DB BNKCUST' //SYSOUT DD SYSOUT=* //START05 EXEC PGM=MFDBUJCL,PARM='/STA DB BNKACC' //SYSOUT DD SYSOUT=* //*