Control data set recovery procedure using CDSVERSIONBACKUP with UPDATEC
For performance reasons, you should use the enhanced CDS recovery function instead of the UPDATEC command to recover your control data sets. However, if you want to use UPDATEC, use the following procedure:
- Use the CDSVERSIONBACKUP parameter of the QUERY command
to find out the initial characters and the final qualifier of the
backup data set name. Save the QUERY information for use in steps 5 and 11. You will receive the following
messages from the query:
- ARC0375I
- CDSVERSIONBACKUP,
- MCDSBACKUPDSN=uid.MCDS.BACKUP,
- BCDSBACKUPDSN=uid.BCDS.BACKUP,
- OCDSBACKUPDSN=uid.OCDS.BACKUP,
- JRNLBACKUPDSN=uid.JRNL.BACKUP
- ARC0376I
- BACKUPCOPIES=3,
- BACKUPDEVICECATEGORY=DASD,
- LATESTFINALQUALIFIER=V0000007,
- DATAMOVER=HSM
Recommendation: If DFSMShsm is not active, you should issue the following IDCAMS LISTCAT command to determine the latest version: LISTCAT LEVEL(uid)Also note whether DFSMShsm or DFSMSdss was the data mover (by looking at the prefix letter of the low-level qualifier).
- Stop DFSMShsm in all processing units.
- Use the Access Method Services DELETE command to delete
the control data set that has the error. The following example shows
the DELETE command using one of several parameters that are available.
DELETE CLUSTER(uid.MCDS)
- Re-create the control data set that was deleted in step 3. When you re-create the control data set, increase the space allocation for that control data set if more space is required. For more information, refer to the z/OS DFSMShsm Implementation and Customization Guide.
- The next step depends on the data mover used to create
the backup version.
- If the data mover was DFSMSdss, restore the latest backup version
into the re-created data set using the following JCL example:
//JOB1 JOB accounting information,REGION=nnnK //STEP1 EXEC PGM=ADRDSSU //SYSPRINT DD SYSOUT=* //TAPE DD DSN=uid.MCDS.BACKUP.D0000106,DISP=(OLD,KEEP) //DASD DD UNIT=3390,VOL=SER=222222,DISP=OLD //SYSIN DD * RESTORE DATASET(- INCLUDE(uid.dsname))- INDDNAME(TAPE)- OUTDDNAME(DASD)- REPLACE /*
- If the data mover was DFSMShsm, use the Access Method Services
IMPORT command to recover the latest backup version of the affected
control data set by using the following JCL example:
//IMPORT JOB ,'USERID' MSGCLASS=A,REGION=768K //STEP1 EXEC PGM=IDCAMS //DEST DD DSN=uid.MCDS,DISP=OLD //SOURCE DD DSN=uid.MCDS,DISP=OLD,AMP=AMORG //DASD DD DSN=uid.MCDS.BACKUP.V0000106, // DISP=OLD //SYSPRINT DD SYSOUT=* //SYSIN DD * IMPORT- INFILE(DASD)- OUTFILE(SOURCE)- INTOEMPTY- PURGE /*
- If the data mover was DFSMSdss, restore the latest backup version
into the re-created data set using the following JCL example:
- Restart DFSMShsm in emergency mode, EMERG=YES, in the processing
unit from which you will issue the UPDATEC command.
Recommendation: On the restart, ensure that your ARCCMDxx parmlib member is set correctly with either of the following specification:If you follow either of the above recommendations, then the EMERG=YES specification will not be overridden by your ARCCMDxx member.
- SETSYS EMERG is specified.
- Neither SETSYS EMERG nor SETSYS NOEMERG is specified.
- Use the UPDATEC command to combine the entries from the journal
data set with the entries from the recovered control data set. (See Updating recovered control data sets using UPDATEC.) When you use this command, the backup version number
of the journal data set is one greater than that of the backup version
control data set used in step 5. You must concatenate
the journal backup data set name that you received in the ARC0375I
message in step 1 with the version number, and use
that as the journal parameter of the UPDATEC command.
If you need to use multiple backup versions of the journal data set to recover a control data set, be sure you apply the backup versions in the correct order (oldest to newest).
- Stop and restart DFSMShsm in emergency mode, EMERG=YES, from the
processing unit from which you issued the UPDATEC command.
Recommendation: On the restart, ensure that your ARCCMDxx parmlib member is set correctly with either of the following specification:If you follow either of the above recommendations, then the EMERG=YES specification will not be overridden by your ARCCMDxx member.
- SETSYS EMERG is specified.
- Neither SETSYS EMERG nor SETSYS NOEMERG is specified.
- Verify that the control data sets are correct. (See Determining if control data sets are accurate.)
- Fix any errors in the control data sets. (See Repairing errors in the control data sets.)
- If you are recovering the MCDS, issue a QUERY CDSVERSIONBACKUP
to ensure that the latest final qualifier is the same as that shown
in step 1. If you do not have the output from the QUERY command in
step 1, you can determine the final qualifier of the latest backup
copy from your catalog using the LISTCAT LEVEL command, as shown in
the following example:
LISTCAT LEVEL(uid)
If these qualifiers do not match, use the FIXCDS patch command to correct the field at offset X'B1' in the MHCR record to reflect the latest version in the catalog, as shown in the following example:FIXCDS S MHCR PATCH(X'B1' 0000007)
- Use the CONTROLDATASETS parameter of the BACKVOL command to get a current backup copy of the control data sets and journal data set.
- If the backup of the control data sets was successful, you can issue a SETSYS NOEMERG command, and release DFSMShsm's automatic functions with a RELEASE ALL command.
- Restart DFSMShsm in the other processing units.