Start a Conversation

Unsolved

This post is more than 5 years old

854

September 10th, 2009 07:00

Dump & Rebuild an ICF Catalog with Catalog Solution; step by

SCENARIO to reorg a catalog with post-recovery Diagnostics (not Rebuild WhileOpen)


pre-recovery work:


You should ensure that this catalog procedure occurs during downtime and that nobody else can access the catalog.


1) LISTCAT your.catalog.name (optional):

//jobcard JOB ...
//LISTCAT EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
LISTCAT ALL CATALOG(your.catalog.name) //


2) LOCK your.catalog.name, to ensure no unauthorized access:

//jobcard JOB ...
//ALTERSTG EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
ALTER your.catalog.name -
LOCK
//


3) EXPORT DISCONNECT your.catalog.name from ALL systems, EXCEPT the one you are working on:

//jobcard JOB ...
//EXDECNCT EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
EXPORT your.catalog.name -
DISCONNECT -
CATALOG(different.mastercatalog)
//


4) issue Modify commands to clear cache information:

If your.catalog.name is under ECS or VLF control, it should be removed from either with the appropriate MODIFY command:

RO *ALL,F CATALOG,ECSSHR(REMOVE,your.catalog.name)
or
RO *ALL,F CATALOG,NOVLF(your.catalog.name)

Additionally, you should issue the following MODIFY commands to clear any cache information:
RO *ALL,F CATALOG,UNALLOCATE(your.catalog.name)
RO *ALL,F CATALOG,CLOSE(your.catalog.name)


Verify that catalog is closed, etc.
RO *ALL,F CATALOG,OPEN


Catalog Reorg:


1) back up the catalog using DUMP command:

//jobcard .JOB ...
//DUMP1 EXEC PGM=CSLMAIN
//STEPLIB DD DISP=SHR,DSN=your.csl.loadlib
//BACKUPDD DD DSN=your.backup.file,
// DISP=(NEW,CATLG,DELETE),VOL=(SER=volser),
// UNIT=SYSDA,SPACE=(CYL,(1,1),RLSE)
//ERRFILE DD DSN=your.error.file,
// DISP=(NEW,CATLG,DELETE),VOL=(SER=volser),
// UNIT=SYSDA,SPACE=(CYL,(1,1),RLSE)
//SYSOUT DD SYSOUT=*
//SYSIN DD *
DUMP OBJECT=your.catalog.name
//


If DUMP doesn¿t create a backup, use the following JCL instead of DUMP:
SCAVENGE OBJECT=your.catalog.name,
VOLUME=volser,CATDUMP


2) DELETE your.catalog.name

//jobcard JOB ...
//DELUCAT EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DELETE your.catalog.name -
RECOVERY -
USERCATALOG
//

3) Define your.catalog.name on the SAME volume:

//jobcard JOB ...
//DEFICF EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE USERCATALOG(NAME(your.catalog.name) -
VOLSER(volume) -
LOCK -
....specify same parameters as your.catalog.name (use LISTCAT info) or change as appropriate
//

4) REBUILD your.catalog.name from the backup file:

//jobcard JOB ...
//REBUILD1 EXEC PGM=CSLMAIN
//STEPLIB DD DISP=SHR,DSN=your.csl.loadlib
//BACKUPDD DD DISP=SHR,DSN=your.backup.file
//SYSOUT DD SYSOUT=*
//PRTFILE DD SYSOUT=*
//SYSIN DD *
REBUILD OBJECT=your.catalog.name
//

5) back up your.catalog.name to ensure we have a current, valid copy (optional):

//jobcard JOB ...
//DUMP2 EXEC PGM=CSLMAIN
//STEPLIB DD DISP=SHR,DSN=your.csl.loadlib
//BACKUPDD DD DISP=SHR,DSN=your.second.backup.file
//SYSOUT DD SYSOUT=*
//PRTFILE DD SYSOUT=*
//SYSIN DD *
DUMP OBJECT=your.catalog.name,EXAMINE
//



post-recovery diagnostics (optional):


Run various diagnostic routines to determine the state of the catalog.


1) LISTCAT your.catalog.name:

//jobcard JOB ...
//LISTCAT EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
LISTCAT ALL CATALOG(your.catalog.name) //


2) check physical structure of your.catalog.name:

//jobcard JOB ...
//SYSTEMCK EXEC PGM=CSLMAIN
//STEPLIB DD DISP=SHR,DSN=your.csl.loadlib
//SYSOUT DD SYSOUT=*
//PRTFILE DD SYSOUT=*
//SYSIN DD *
SYSTEMCHECK BCS,INCCAT=your.catalog.name
//


3) VVDS - BCS Synchronization:
This command creates IDCAMS DEFINE control cards for any data sets that should be, but are not cataloged in your.catalog.name. The control cards are written to 'your.ccfile1', which can subsequently be used as input to an IDCAMS job.

//jobcard JOB ...
//DIAGGRC EXEC PGM=CSLMAIN
//STEPLIB DD DISP=SHR,DSN=your.csl.loadlib
//PRTFILE DD SYSOUT
//SYSOUT DD SYSOUT=*
//CCFILE DD DSN=your.ccfile1,DISP=(NEW,CATLG),UNIT=SYSDA,
// SPACE=(CYL,(1,1),RLSE)
//SYSIN DD *
DIAGNOSE TEST=GRC,
INCVOL=*,INCCAT=your.catalog.name
//

3a) Submit the control cards generated by steps 3:

//jobcard JOB ...
//GENERIC EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD DISP=SHR,DSN=your.ccfile1


4) BCS - VVDS Synchronization:
This command creates IDCAMS DELETE NOSCRATCH control cards for any VSAM data sets that do not have corresponding VVDS entries. The control cards are written to 'your.ccfile2', which can subsequently be used as input to an IDCAMS job.

//jobcard JOB ...
//DIAGGDC EXEC PGM=CSLMAIN
//STEPLIB DD DISP=SHR,DSN=your.csl.loadlib
//PRTFILE DD SYSOUT
//SYSOUT DD SYSOUT=*
//CCFILE DD DSN=your.ccfile2,DISP=(NEW,CATLG),UNIT=SYSDA,
// SPACE=(CYL,(1,1),RLSE)
//SYSIN DD *
DIAGNOSE TEST=GDC,
INCCAT=your.catalog.name
//


4a) Submit the control cards generated by steps 4:

//jobcard JOB ...
//GENERIC EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD DISP=SHR,DSN=your.ccfile2


5) BCS - VTOC Synchronization:
This command generated IDCAMS DELETE NOSCRATCH control cards for any NONVSAM data sets that do not have corresponding VTOC entries. The control cards are written to 'your.ccfile3', which can subsequently be used as input to an IDCAMS job.

//jobcard JOB ...
//DIAGGDLN EXEC PGM=CSLMAIN
//STEPLIB DD DISP=SHR,DSN=your.csl.loadlib
//PRTFILE DD SYSOUT
//SYSOUT DD SYSOUT=*
//CCFILE DD DSN=your.ccfile3,DISP=(NEW,CATLG),UNIT=SYSDA,
// SPACE=(CYL,(1,1),RLSE)
//SYSIN DD *
DIAGNOSE TEST=GDLN,
INCCAT=your.catalog.name
//


5a) Submit the control cards generated by steps 5:

//jobcard JOB ...
//GENERIC EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD DISP=SHR,DSN=your.ccfile3


6) VTOC - CATALOG Synchronization (nonSMS managed Volumes only):
This command creates IDCAMS DEFINE NONVSAM control cards for any NONVSAM data sets that should be, but are not cataloged in your.catalog.name. The control cards are written to 'your.ccfile4', which can subsequently be used as input to an IDCAMS job.

The DIAGNOSE TEST=GDN will create DEFINE NONVSAM recatalog control cards.

Datasets on SMS managed volumes are recorded via the VVDS, (including NONVSAM datasets). On nonSMS managed volumes, NONVSAM datasets are only recorded in the VTOC, VSAM datasets still get recorded in a VVDS.

So to synch nonSMS managed volumes with your catalog you need to run this command as well. If there are no "non-SMS managed volumes" associated with this catalog, this step may be skipped.

//jobcard JOB ...
//*
//* THIS SHOULD ONLY BE RUN AGAINST NON-SMS MANAGED VOLUMES
//*
//DIAGGDN EXEC PGM=CSLMAIN
//STEPLIB DD DISP=SHR,DSN=your.csl.loadlib
//PRTFILE DD SYSOUT
//SYSOUT DD SYSOUT=*
//CCFILE DD DSN=your.ccfile4,DISP=(NEW,CATLG),UNIT=SYSDA,
// SPACE=(CYL,(1,1),RLSE)
//SYSIN DD *
DIAGNOSE TEST=GDN,
INCVOL=*,INCCAT=your.catalog.name
//


6a) Submit the control cards generated by steps 6:

//jobcard JOB ...
//GENERIC EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD DISP=SHR,DSN=your.ccfile4


7) back up your.catalog.name to ensure we have a current, valid copy:
This is done to ensure we have a working backup of the catalog

//jobcard JOB ...
//DUMP3 EXEC PGM=CSLMAIN
//STEPLIB DD DISP=SHR,DSN=your.csl.loadlib
//BACKUPDD DD DISP=SHR,DSN=your.third.backup.file
//SYSOUT DD SYSOUT=*
//PRTFILE DD SYSOUT=*
//SYSIN DD *
DUMP OBJECT=your.catalog.name
//


returning catalog access:



1) CONNECT your.catalog.name to ALL systems it needs to be connected to, EXCEPT the system you are doing your catalog recovery:

//jobcard JOB ...
//ICONNECT EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
IMPORT CONNECT OBJ((your.catalog.name -
VOL(volume) DEVT(3390 ))) -
CATALOG(different.mastercatalog)
//


2) Recreate the aliases on ALL systems that your.catalog.name is connected to, EXCEPT the system you are doing your catalog recovery:

//jobcard JOB ...
//REBUILD2 EXEC PGM=CSLMAIN
//STEPLIB DD DISP=SHR,DSN=your.csl.loadlib
//BACKUPDD DD DISP=SHR,DSN=your.backup.file
//SYSOUT DD SYSOUT=*
//PRTFILE DD SYSOUT=*
//SYSIN DD *
REBUILD OBJECT=your.catalog.name,
ALTMAST=different.mastercatalog,
ALIASONLY
//


3) Issue Modify commands on ALL systems that your.catalog.name is connected to:

Depending on which Modify command you used in pre-recovery work, step 3, issue the following MODIFY command to return it to ECS or VLF control:

RO *ALL,F CATALOG,ECSSHR(ENABLE,your.catalog.name)
or
RO *ALL,F CATALOG,VLF(your.catalog.name)


4) UNLOCK your.catalog.name, to return access to all users:

//jobcard JOB ...
//ALTERSTG EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
ALTER your.catalog.name -
UNLOCK
//


Dave Yates
EMC TSE3
Benevolent Host S/W & Mainframe Forum Moderator
"Il Moderatore Benevolo"
No Responses!
No Events found!

Top