ICF Catlog Backup and Recovery
ICF Catlog Backup and Recovery
ibm.com/redbooks
SG24-5644-01
Take Note! Before using this information and the product it supports, be sure to read the
general information in Special notices on page 153.
Contents
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
The team that wrote this redbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
IBM trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Comments welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Chapter 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 ICF catalog structure and evolution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Catalog structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Where a data set is described. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.3 Master and user catalogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.4 Catalog Address Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Tape volume catalogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 The ITSO test environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Chapter 2. Backing up catalogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1 Backup strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.1 Backup frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.2 Backup techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Backup utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 IDCAMS EXPORT command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 DFSMSdss logical dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3 DFSMShsm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.4 Advanced Copy Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Considerations for the backup process . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.1 SMF data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.2 Master catalogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.3 Tape volume catalogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.4 VSAM volume data set (VVDS) backup . . . . . . . . . . . . . . . . . . . . . . 19
Chapter 3. Analyzing catalog integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1 General diagnostic considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2 Utilities and tools available for diagnosis. . . . . . . . . . . . . . . . . . . . . . . . . . 23
Contents
......
......
......
......
......
......
.......
.......
.......
.......
.......
.......
......
......
......
......
......
......
.
.
.
.
.
.
151
151
151
152
152
152
Figures
1-1
1-2
1-3
2-1
2-2
2-3
3-1
3-2
3-3
3-4
3-5
3-6
3-7
3-8
3-9
3-10
3-11
3-12
3-13
3-14
3-15
3-16
3-17
3-18
3-19
3-20
4-1
4-2
4-3
4-4
4-5
5-1
5-2
5-3
5-4
5-5
6-1
6-2
6-3
6-4
6-5
6-6
6-7
6-8
6-9
6-10
6-11
6-12
6-13
6-14
6-15
6-16
6-17
6-18
6-19
6-20
6-21
6-22
6-23
6-24
6-25
6-26
6-27
6-28
6-29
6-30
6-31
6-32
6-33
6-34
6-35
6-36
6-37
6-38
Tables
1-1
2-1
3-1
4-1
4-2
6-1
6-2
10
Examples
7-1
7-2
7-3
7-4
7-5
7-6
7-7
7-8
7-9
7-10
7-11
7-12
7-13
7-14
7-15
7-16
7-17
7-18
7-19
7-20
7-21
7-22
7-23
7-24
7-25
7-26
11
12
Preface
ICF catalogs are essential system data sets. Even with todays high availability
storage subsystems and processors, there are still situations in which you need
to recover your catalogs. You should keep your catalogs healthy and be prepared
for a recovery situation. Also, you need to be sure that your recovery procedures
do not have a big impact on your production environment. To minimize the
recovery process, you should have a clear backup and recovery strategy, and the
proper utilities.
IBM Integrated Catalog Forward Recovery Utility (ICFRU) and Mainstar Catalog
RecoveryPlus are two of the available tools you can use to recover your catalogs.
ICFRU is a basic tool to help you in a forward recovery situation. It does not offer
a wide range of features, but is useful for catalog recovery. Mainstar's Catalog
RecoveryPlus offers a set of features to help you in your ICF catalog environment
maintenance.
This IBM Redbook provides information and practical examples on how to use
each of these products in a catalog recovery situation. It also provides useful
recommendations for storage administrators in implementing a catalog backup
and recovery plan. It is not intended to compare the two products but to show
how each of them work.
This redbook also provides a variety of practical tests to help you with the
different error scenarios you may find in your daily production activities.
13
14
Notice
This publication is intended to help system programmers to ensure the good
health of their catalog environment, show how to use the correct tools, and
explain the recommended procedures in case recovery is necessary. The
information in this publication is not intended as the specification of any
programming interfaces that are provided by ICFRU or Mainstar Catalog
RecoveryPlus. See the PUBLICATIONS section of the IBM Programming
Announcement more information about what publications are considered to be
product documentation.
IBM trademarks
The following terms are trademarks of the International Business Machines
Corporation in the United States and/or other countries:
e (logo)
CICS
DB2
DFS
DFSMS/MVS
DFSMSdfp
DFSMSdss
DFSMShsm
DFSMSrmm
DFSORT
Enterprise Storage Server
FlashCopy
IBM
Magstar
Redbooks Logo
MORE
MVS
MVS/ESA
MVS/XA
Perform
RACF
RAMAC
Redbooks
SP
System/390
VTAM
z/OS
Comments welcome
Your comments are important to us!
We want our Redbooks to be as helpful as possible. Send us your comments
about this or other Redbooks in one of the following ways:
Use the online Contact us review redbook form found at:
ibm.com/redbooks
Preface
15
16
Chapter 1.
Introduction
As the number of systems and amount of data have grown over time, and with
them the number of catalogs, a successful catalog backup and recovery plan is
critical. This redbook discusses techniques and considerations for maintaining
the structural integrity of your catalogs, allowing for recovery should the catalogs
ever be compromised.
This introductory chapter describes:
The Integrated Catalog Facility (ICF) structure and evolution
Tape volume catalogs (VOLCATs)
ITSO test environment
Throughout this redbook, the term catalog refers to the Integrated Catalog
Facility (ICF) catalog. As of 01 January 2000, Virtual Storage Access Method
(VSAM) catalogs and OS CVOLs are not supported.
Figure 1-1 illustrates the relationship between the ICF catalog structures.
VOL002
VTOC
VOL00X
F1 - SYS1.VVDS.VVOL002
F1 - MY.KSDS.D
F1 - MY.KDSD.I
F1 - MY.NVSAM1
portable
BCS1
backup copy
BCS1
BCS1
created by
export
MY.NVSAM1
MY.NVSAM1
MY.NVSAM1
MY.KSDS
- MY.KSDS.D
- MY.KSDS.I
MY.KSDS
- MY.KSDS.D
- MY.KSDS.I
MY.KSDS - MY.KSDS.D - MY.KSDS.I
VVDS
MY.NVSAM1
NVR - MY.NVSAM1
VVR - MY.KSDS.I
VVR - MY.KSDS.D
MY.KSDS.I
MY.KSDS.D
Logical description
Allocation processing
Physical description
Open processing
On volume with data
Figure 1-1 Logical and physical description of data
Chapter 1. Introduction
VSAM data
set
System-managed
non-VSAM data
set
Non-systemmanaged
non-VSAM
data set
Uncataloged
non-VSAM
dataset
Volume,
data set type,
association,
ownership
BCS
BCS
BCS
n/a
n/a
n/a
VVDS
VTOC
VTOC
VTOC
Extent description
VVDS &
VTOC
VTOC
VTOC
VTOC
Catalog name
VVDS
VVDS
n/a
n/a
Most data sets have entries in only one VVDS or VTOC. The exception is a
multi-volume data set, which has entries in the VVDS or VTOC of each volume it
occupies. Because the data set, VTOC, and VVDS are on the same volume,
backups of the volume contain all of the information necessary to recover the
data in the event of a volume failure. Because the BCS does not contain any
physical description of the data sets, it can be recovered without requiring data
sets to be restored to the same point in time.
Chapter 1. Introduction
User catalogs provide access to application and user data sets. They should only
be accessed by alias, following your installations data set naming conventions.
There are no set rules as to how many you should have or how large they should
be. It depends entirely on your environment. Cataloging data sets for two
unrelated applications in the same catalog creates a single point of failure for
them that otherwise may not exist. An assessment of the impact of outage of a
given catalog may help determine if it is too big or would impact too many
different applications.
Process
Request
User A Address Space
Reference
Data Set
Reference
Data Set
Call CAS
Call CAS
Wait
Continue
Wait
Continue
A catalog is opened at the first reference and remains open until one of the
following actions occurs:
The operator issues a command to close the catalog.
The CAS address space terminates or is restarted by the operator.
The maximum number of catalogs allowed to be open is reached. In this
case, the least-recently used catalog is closed and the required catalog is
opened.
A control block in the CAS is built for each catalog and VVDS as it is opened.
Keep this in mind if you find attempts to access a particular BCS or VVDS are
resulting in recurrent errors. Recovery may be as simple as closing and
reopening the BCS or VVDS involved to rebuild the control blocks.
To further improve performance, two types of record caching were introduced:
In-storage catalog cache (ISC): With MVS/XA
Catalog data space cache (CDSC): With MVS/ESA
ISC is the default and caches catalog records within the CAS address space.
CDSC caches records in a data space associated with the CAS using the virtual
look-aside facility (VLF).
With shared catalogs, each systems CAS has its own cache, which creates a
potential for integrity problems. Solutions to these possible exposures are
discussed in later topics.
Catalog problems may necessitate your ending a request, closing or unallocating
a BCS or VVDS, or restarting CAS. Excellent information about the CAS and
communicating with it via the MVS MODIFY command can be found in DFSMS
Managing Catalogs, SC26-7409. This publication should be your first source of
information on anything regarding your catalog environment.
Chapter 1. Introduction
Unlike other user catalogs, VOLCATs have required naming conventions. The
general VOLCAT is named hlq.VOLCAT.VGENERAL. The system default for the
high level qualifier (hlq) is SYS1. If any hlq other than SYS1 is used, it must be
specified in the SYSCAT statement in the LOADxx member of SYS1.PARMLIB
as well as in the SYSCATxx member of SYS1.NUCLEUS, if used in your
environment. To guarantee accuracy, all systems connected to a Tape Library
Dataserver should use the same high level qualifier for their tape volume
catalogs.
The general VOLCAT contains a tape library record for each system-managed
tape library. The record contains information such as the library name, library ID,
and device type. The general VOLCAT also contains tape volume records that
are not included in a specific VOLCAT.
A specific VOLCAT is named hlq.VOLCAT.V*, where the asterisk (*) in the third
qualifier is the first character of the volume serial numbers to be cataloged in it. A
specific VOLCAT contains only tape volume records. Tape volume records
include data such as the volser, recording technique, media type, SMS storage
group, and whether the data on the volume is compacted.
The tape configuration database (TCDB) is the collection of all VOLCATs. There
are IDCAMS commands to create, alter, or delete library and volume records in
the TCDB. They should be used only in a recovery situation and with caution
since they cannot update the library managers inventory or the tape
management systems database.
See DFSMS OAM Planning, Installation and Storage Adminstration Guide for
Tape Libraries, SC35-0427, and DFSMSrmm Implementation and Customization
Guide, SC26-7405, for more information on VOLCATs and system-managed
tape libraries.
CF03
Coupling
Facilities
SC63
SC64
z/OS 1.1
JES2
z/OS 1.2
JES2
SC65
z/OS 1.2
JES3
Shared
Master
Catalog
MCAT2
MCAT1
UCAT1
CF04
UCAT2
UCAT3
The examples used throughout this redbook relate to entries that were defined
and tested within this environment.
Chapter 1. Introduction
10
Chapter 2.
Backing up catalogs
This chapter discusses the importance of an effective backup strategy for
catalogs in your environment. It also describes the techniques and utilities that
are available for performing a successful backup.
The following sections cover:
Backup strategy
Backup utilities
Considerations for the backup process
11
12
The following sections discuss each of the backup utilities. To help you verify that
the backup of your catalog has been successful, they also include sample control
statements for IDCAMS and DFSMSdss and the messages that you should
check.
13
IDCAMS
SYSTEM SERVICES
TIME: 12:47:33
09/25/01
PAGE 1
Notice the IDCAMS EXAMINE and DIAGNOSE commands that precede the
EXPORT in the example. We strongly recommend you include at least an
EXAMINE INDEXTEST in your backup job, regardless of how the backup is
done. These diagnostic commands are discussed in Chapter 3, Analyzing
catalog integrity on page 21. Catalog RecoveryPlus automatically invokes them
as part of its BACKUP command processing. See 6.4, BACKUP command on
page 75.
In the EXPORT command, the keyword TEMPORARY should be specified. If
PERMANENT is coded or allowed to default, the catalog is still exported as
temporary, but a warning message and non-zero return code are issued. Try not
to be complacent about non-zero return codes!
To ensure the integrity of the copy, access to the BCS is serialized, preventing
update access but allowing read access from the system performing the
command. Other systems will be unable to access the catalog, unless you are
using Global Resource Serialization (GRS) or an equivalent product to convert
the catalog RESERVE to a GLOBAL ENQUEUE.
Upon completion of a successful export, the catalogs self-describing record is
marked to indicate that another copy exists and that the original can be replaced.
Aliases are also backed up.
14
All catalog names must be fully qualified. Multiple catalogs may be backed up
with a single command, and to the same output data set. For more information
about DFSMSdss, refer to DFSMSdss Storage Administration Guide,
SC35-0423.
PAGE 0001
5695-DF175
2001.268 13:14
DUMP DATASET(INCLUDE(UCAT.CRPLUS1
UCAT.CRPLUS2
MCAT.SANDBOX.R10.VSBOX11)) OUTDDNAME(OUTDD1)
ADR101I
ADR109I
ADR016I
ADR006I
ADR801I
(R/I)-RI01 (01),
(R/I)-RI01 (01),
(001)-PRIME(01),
(001)-STEND(01),
(001)-DTDSC(01),
ADR454I (001)-DTDSC(01),
ADR006I (001)-STEND(02),
ADR013I (001)-CLTSK(01),
ADR012I (SCH)-DSSU (01),
The catalogs aliases are saved in the backup copy. The lock attribute of the BCS
is also dumped. For a discussion of locking catalogs, see 4.1.5, Preventing
catalog activity during restore on page 52.
15
2.2.3 DFSMShsm
When utilizing DFSMShsm availability management or the DFSMShsm BACKDS
command, you must check the DFSMShsm activity logs for any error messages
related to your catalogs. If the catalog resides on a system-managed volume, the
management class is used to control the backup frequency and the number of
backup copies retained. This allows you to define different management classes
to achieve your needs for the backup frequency, and the number of backups you
want to retain for different catalogs. SMS invokes DFSMShsm, which in turn uses
IDCAMS EXPORT to perform the backup. Aliases are included in the backup
copy.
16
Each of the above items helps ensure the integrity and accessibility of your
backup when, and if, the need for it arises.
Event recorded
36
60
61
65
66
17
This results in a connector record being built in the active master catalog. But the
command necessary to keep the alternate master in sync should be:
IMPORT CONNECT OBJ((NEWUCAT) DEVT(devt) VOL(volser)) CAT(ALT.MCAT)
Periodic full-volume dumps of the master catalog volume could provide the ability
to perform a restore by using the stand-alone version of DFSMSdss. This is
especially useful if your site runs a single MVS image or does not share disk
between systems.
18
//DFDSS
EXEC PGM=ADRDSSU,PARM='UTILMSG=YES'
//SYSPRINT DD SYSOUT=*
//INVOL DD UNIT=SYSDA,VOL=SER=SBOX75,DISP=SHR
//OUT1 DD DSN=YCJRES3.VVDSBACK,DISP=(,CATLG),UNIT=SYSDA,SPACE=(CYL,(2,2))
//SYSIN DD *
DUMP DATASET(INCLUDE(SYS1.VVDS.VSBOX75)) INDDNAME(INVOL) OUTDDNAME(OUT1)
PAGE 0001
5695-DF175
ADR101I (R/I)-RI01 (01),
ADR109I (R/I)-RI01 (01),
ADR006I (001)-STEND(01),
ADR378I (001)-DTDS (01),
19
20
Chapter 3.
21
device
ALLOCATED TO
ddname
If VOL=SER= is not specified in the JCL, or the data set has not been passed
from a prior step, allocation invokes catalog management to do a locate. The only
structure involved at this point is the BCS. Therefore, it would be the focus of your
diagnostics. You have no reason to suspect a problem in the VVDS or VTOC
because you did not go that far.
After control is passed to the program on your EXEC statement, there are more
possibilities as to what was happening when the data set was not found.
Programs, such as IDCAMS, allow you to put data set names or references to
DD names in the command stream. If you are referring to a DD name, allocation
has already occurred. If you use the data set name, IDCAMS dynamically
invokes allocation. In order to know what was happening, you need to look at the
message prefixes:
Such utilities as IDCAMS, IEBGENER, or IEBCOPY hardly ever abend. They are
written to set return codes in situations where your application programs might
abend. The messages they direct to SYSPRINT are the most informative. Check
them before worrying about messages in the job log.
22
So step back, take a deep breath and look around before you spend time
diagnosing or recovering the wrong thing. Think about what was happening and
what structures are involved at that time.
IDCAMS
LISTCAT VOLUMES
EXAMINE
DIAGNOSE
PRINT
Catalog RecoveryPlus
DIAGNOSE
ZAP PRINT
DFSMSdss
ISPF/PDF
VVDS
IDCAMS
LISTCAT ALL
DIAGNOSE
PRINT
Catalog RecoveryPlus
DIAGNOSE
ZAP PRINT
DFSMSdss
23
VTOC / VTOCIX
IEHLIST
Catalog RecoveryPlus
DIAGNOSE
ZAP PRINT
DFSMSdss
PRINT
DEFRAG
ICKDSF
BUILDIX
BUILDOS
ISPF/PDF
24
Figure 3-1 shows the JCL to invoke IDCAMS and do a VERIFY and EXAMINE of
a BCS. Sample output illustrating various error conditions can be found in
Chapter 7, Case studies on page 111.
//STEP1
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN
DD *
VERIFY DATASET(UCAT.VSBOX09)
EXAMINE NAME(UCAT.VSBOX09) INDEXTEST DATATEST ERRORLIMIT(100)
To use EXAMINE on a BCS, you must have READ authority to the RACF
STGADMIN.IDC.EXAMINE.DATASET profile, if it is defined.
The ERRORLIMIT keyword is used to limit the number of error messages
printed. It defaults to over two billion so you may want to specify something to
prevent runaway output! The parameter only affects message output and does
not stop the EXAMINE processing. Specifying a value of zero suppresses the
printing of detailed error messages.
We recommend that you issue an IDCAMS VERIFY command prior to
EXAMINE. There have been cases where EXAMINE reports serious errors when
there is no problem with the catalog. The symptoms vary, but if you have
encountered the problem, you usually see the following error messages:
IDC11700I HIGH-LEVEL INDEX STRUCTURE IS NOT UNIQUE
IDC21701I MAJOR ERRORS FOUND BY INDEXTEST
25
26
27
28
None of the above errors give you any reason to suspect the integrity of your
data sets. Recovery consists simply of deleting and recreating the catalog
entries. The IDCAMS DELETE NOSCRATCH, DELETE TRUENAME (if
necessary), and DEFINE RECATALOG commands can accomplish that without
touching the data set. You may be able to use ISMF or ISPF/PDF Data Set List
Utility (3.4) option u (uncatalog) followed by option c (catalog).
//STEP1
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//D1 DD UNIT=SYSDA,VOL=SER=SBOX36,DISP=SHR,DSN=SYS1.VVDS.VSBOX36,AMP='AMORG'
//SYSIN
DD *
DIAGNOSE VVDS INFILE(D1)
IDC21364I ERROR DETECTED BY DIAGNOSE:
VVDS ENTRY: YCJRES2.CRPLUS4.VVDSTST1.DATA (Z)
RECORD: X'0000B160'
OFFSET: X'0002'
REASON: 41 - DUPLICATE VVR/NVRS IN VVDS
IDC21365I VVDS RECORD DISPLAY:
RECORD: X'0000B160'
(dump of VVR)
IDC21364I ERROR DETECTED BY DIAGNOSE:
VVDS ENTRY: YCJRES2.CRPLUS4.VVDSTST1.DATA (Z)
RECORD: X'0000B160'
OFFSET: X'014B'
REASON: 16 - VVDS AND VTOC STARTING CCHH UNEQUAL
IDC21365I VVDS RECORD DISPLAY:
RECORD: X'0000B160'
(dump of VVR)
IDC21365I VTOC RECORD DISPLAY:
RECORD: YCJRES2.CRPLUS4.VVDSTST1.DATA
(dump of F1 DSCB)
29
Note that the first condition does not actually mean the data set is not cataloged.
It simply is not in the BCS where the VVR or NVR says it is cataloged. It could be
cataloged in a different BCS. Note also that the second condition does not mean
the data set does not exist. It is simply not on the volume named in the catalog. It
could be elsewhere.
You may also discover orphan VVRs or NVRs with no BCS or VTOC entries, or
a situation where there are BCS and VVDS entries but no entry in the VTOC. In
either of these cases, the data set no longer exists on the volume where it is
expected to be. Recovering requires you to clean up the left over pieces and then
find the data set and recatalog it or restore it from a backup.
VSAM data sets and non-VSAM system-managed data sets with a high level
qualifier of SYS1 can be cataloged in more than one BCS. This can be done with
IDCAMS DEFINE RECATALOG. In this case, the VVR or NVR still points to the
original catalog. This is a situation which might be detected by DIAGNOSE, but it
is not considered a structural or synchronization error.
30
VOL001
BCS1
DS1 - VOL001
DS2 - VOL002
DS3 - VOL001
DS4 - VOL003
DS5 - VOL999
SYS1.VVDS.VVOL001
DS1 - BCS1
DS7 - BCS3
DS8 - BCS3
DS9 - BCS1
VTOC
DS9
DS8
DS7
DS1
31
The situations indicated by these messages may be temporary as data sets are
allocated and deleted on the volume. However, you can remedy them by
executing the following IDCAMS commands.
In the case of IDC11374I message, create the VVDS entry in the BCS and
add the BCS name to the VVCR with:
DEFINE CLUSTER (NAME(SYS1.VVDS.Vvolser) VOLUME(volser) NONINDEXED RECATALOG) CATALOG(bcsname)
In the case of IDC11362I message, delete the extraneous VVDS entry from
the BCS and remove the BCS name from the VVCR with:
DELETE SYS1.VVDS.Vvolser NOSCRATCH CATALOG(bcsname)
32
//STEP1
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//D1 DD UNIT=SYSDA,VOL=SER=SBOX38,DISP=SHR,DSN=SYS1.VVDS.VSBOX38,AMP='AMORG'
//SYSIN
DD *
DIAGNOSE ICFCATALOG INDATASET(UCAT.CRPLUS2) COMPAREDD(D1)
IDC21364I ERROR DETECTED BY DIAGNOSE:
ICFCAT ENTRY: YCJRES2.CRPLUS.TESTK.K000950.DATA (D)
RECORD: YCJRES2.CRPLUS.TESTK.K000950 /00
OFFSET: X'0087'
REASON: 51 - VVDS ENTRY NOT FOUND. SCAN VVDS FAILED.
IDC21365I ICFCAT RECORD DISPLAY:
RECORD: YCJRES2.CRPLUS.TESTK.K000950 /00
*....C....YCJRES2.CRPLUS.TESTK.K0*
*00950
...........*
*............D.$..YCJRES2.CRPLUS.*
*TESTK.K000950.DATA..............*
*...........SBOX38........{......*
*.......I.*..YCJRES2.CRPLUS.TESTK*
*.K000950.INDEX..................*
*.......SBOX38........{..........*
*.
*
Figure 3-5 Sample JCL to DIAGNOSE a BCS and compare to two VVDSs
33
VOL001
BCS1
BCS1
DS1 - VOL001
DS2 - VOL002
DS3 - VOL001
DS4 - VOL003
DS5 - VOL999
SYS1.WDS.VVOL001
DS1 - BCS1
DS7 - BCS3
DS8 - BCS3
DS9 - BCS1
VTOC
DS9
DS8
DS7
DS1
34
a BCS name extension record (VVCN) is constructed and stored within the
VVDS, with its RBA address stored at offset x'0000C' in the VVCR. You can tell if
you have a VVCN if this word is not zeroes, in which case, you will need to print
the record at that RBA.
There may be entries for catalogs that no longer have data sets on the volume.
There may also be VVRs or NVRs in the VVDS that are cataloged in BCSs for
which there is no entry in the VVCR. Either of these conditions will result in a
non-zero return code. A simple DIAGNOSE of the VVDS identifies them with the
following messages:
IDC11375I THESE ADDITIONAL VVDS REFERENCED CATALOGS WERE ENCOUNTERED
IDC11367I THE FOLLOWING VVDS REFERENCED CATALOGS WERE NOT ENCOUNTERED
//STEP1
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//INDD1
DD DSN=SYS1.VVDS.VSBOX03,DISP=SHR,UNIT=SYSDA,VOL=SER=SBOX03
//SYSIN
DD *
PRINT INFILE(INDD1) COUNT(1)
LISTING OF DATA SET -SYS1.VVDS.VSBOX03
RECORD SEQUENCE NUMBER - 1
*.8..VVCR................UCAT.VSB*
*OX01
*
*
............MCAT.SANDBOX.R10*
*.VSBOX11
....*
*........UCAT.VSBOX09
*
*
............*
*MCAT.SANDBOX.Z02.VSBOX11
*
*
............UCAT.CRP*
*LUS3
*
*
..&... .....UCAT.CRPLUSA
*
*
..-.*
*.. .....UCAT.CRPLUSB
*
*
...... .....*
*UCAT.CRPLUSC
*
*
...... .....UCAT.CRP*
*LUSD
*
*
...... .....
*
35
Figure 3-8 shows a diagnose of the VVDS on volume SBOX38 checking the
dependent records in the BCS UCAT.CRPLUS2. No BCS entry is found for the
cluster YCJRES2.CRPLUS.TESTE.E00001. Only the interpreted side of the
dump of the VVR is shown. The VVR name is the data component name. The
fields in the VVR that name the cluster and the BCS where it should be cataloged
are highlighted.
//STEP1
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//D1 DD UNIT=SYSDA,VOL=SER=SBOX38,DISP=SHR,DSN=SYS1.VVDS.VSBOX38,AMP='AMORG'
//SYSIN
DD *
DIAGNOSE VVDS INFILE(D1) COMPAREDS(UCAT.CRPLUS2)
IDC3302I ACTION ERROR ON UCAT.CRPLUS2
IDC3351I ** VSAM I/O RETURN CODE IS 16 - RPLFDBWD = X'93080010'
IDC21364I ERROR DETECTED BY DIAGNOSE:
VVDS ENTRY: YCJRES2.CRPLUS.TESTE.E000001.DATA (Z)
RECORD: X'0003716B'
OFFSET: X'0002'
REASON: 19 - CATLG ENTRY NOT FOUND
IDC21365I VVDS RECORD DISPLAY:
RECORD: X'0003716B'
*.,..Z......YCJRES2.CRPLUS.TESTE.*
*E000001.DATA..YCJRES2.CRPLUS.TES*
*TE.E000001..UCAT.CRPLUS2.YCJRES2*
*.CRPLUS.TESTE.E000001.... ......*
*..................&.............*
*.....+/.........................*
*.....+/......-..-...............*
*........&......................+*
*/...............................*
*................................*
*..........................J...J.*
*...........
*
36
cause reallocation to fail, but results in the existence of a duplicate VVR. The
most frequently used IDCAMS commands and their functions are listed in
Table 3-1. Some of these actions can also be done with ISPF/PDF Data Set List
Utility (3.4) or ISMF.
Table 3-1 Useful IDCAMS commands
Command
Action
DELETE NOSCRATCH
DELETE TRUENAME
DEFINE RECATALOG
DEFINE NONVSAM
37
38
The status display (Figure 3-9) shows you if a catalog is considered shared,
among other things. You need to check the fifth character position under FLAGS
for either E, indicating Enhanced Catalog Sharing (ECS) mode, or R,
indicating VVDS mode sharing. If neither of the sharing flags is shown, you can
be certain that the two conditions for sharing a catalog are not met. It may be that
on one of the sharing systems the disk volume is not defined as shared in HCD.
In this case, you see the R flag on the systems that meet the conditions, but not
on the systems that do not.
F CATALOG,ALLOCATED
IEC351I CATALOG ADDRESS SPACE MODIFY COMMAND ACTIVE
IEC348I ALLOCATED CATALOGS
*CAS***************************************************************
* FLAGS -VOLSER-USER-CATALOG NAME
*
* Y-I-R- SBOX01 0001 UCAT.CRPLUS2
*
* Y-I-R- SBOX01 0001 UCAT.CRPLUS1
*
* Y-IAR- SBOX11 0001 SYS1.VOLCAT.VGENERAL
*
* Y-I-R- SBOX11 0001 MCAT.SANDBOX.R10.VSBOX11
*
*******************************************************************
* Y/N-ALLOCATED TO CAS, S-SMS, V-VLF, I-ISC, C-CLOSED, D-DELETED, *
* R-SHARED, A-ATL, E-ECS SHARED, K-LOCKED
*
*CAS***************************************************************
IEC352I CATALOG ADDRESS SPACE MODIFY COMMAND COMPLETED
In our case, we can see the R flag on all catalogs that are listed.
The E flag is only seen if ECS is active for that catalog. This means that the
conditions for shared catalogs are met on all systems in the sysplex. ECS is
thoroughly discussed in Enhanced Catalog Sharing and Management,
SG24-5594.
Figure 3-10 shows the display for one particular user catalog following various
actions with IDCAMS or the MODIFY command. Lines have been deleted from
the output. Note the absence of the R in the fifth character position under
FLAGS in the last display. This system no longer considers UCAT.CRPLUS1 to
be shared. The catalog is on a physically shared volume and catalog sharing
continues, but without integrity.
39
40
SYSTEM A
BCS
CI
1. Create X
2.
ad
Re
SYSTEM B
W Y Z
CI
2. R
ead
SHAREOPTIONS (3 3)
1. Locate Z
CI
W Y Z
W Y Z
Buffer
Buffer
BCS
BCS
Write X
3.
W X Y Z
I
r ite C
R ew
4. Locate X
(Use same buffer)
W X Y Z
Buffer
5. Delete Y
BCS
7. Locate Y
(Use same buffer)
Found at allocation
Not found at open
W Z
W Z
te
6. Rewri
CI
Buffer
SHAREOPTIONS (3 3)
To compound the situation, assume system B then deletes data set Y and
rewrites its version of the CI to disk (5 and 6), overlaying what system A just
wrote. The result would be that data set X exists, but the BCS no longer has an
entry for it. Imagine how messy it would be if the insert of a new record resulted
in a CI or CA split! Improper sharing such as this is the most common cause of
structurally damaged catalogs, where the index and data no longer match and
records are duplicated in different CIs.
Symptoms continue to appear. System A does a locate for the data set Y (7).
Since the catalog is not flagged as shared, system A uses the copy of the CI it
already has in a buffer, finds the record, and completes allocation. At open
processing, however, data set Y will not be found.
The conclusion to be drawn from this is to make sure that catalogs are defined
with SHAREOPTIONS (3 4) and reside on a volume defined as shared to every
system connected to it.
41
There are almost 100 valid return codes, one of which has about 100 reason
codes associated with it! Although its identifier ends in I, indicating it is
informational rather than a warning or error message, it can report some very
serious conditions. It is frequently the message you are directed to by other error
messages.
Most occurrences of IDC3009I are related to individual catalog entries and do not
indicate that recovery of an entire BCS or VVDS is necessary. If you need
additional documentation to use for later problem source identification or to
provide to the support center, you can force CAS to create a dump. Use the
following command to create a dump whenever a given return code, reason
code, and module identifier are provided in the IDC3009I message:
MODIFY CATALOG,DUMPON(retcode,rsncode,modid)
For unexpected abends in CAS, a dump is always created. There are certain
forced (expected) abends in CAS, such as abend code 81A during CAS restart,
for which no dump is created. Using the F CATALOG,DUMPON command with
no additional operands specified creates a dump for expected abends and would
be an extreme action to take. It is unlikely you will need a CAS dump to resolve
your catalog problem.
Keep in mind that an abend in CAS does not mean CAS itself has abended. Like
a batch job may abend but JES and the initiator can go on to do other work, an
individual CAS task may abend, but CAS can go on to service other tasks.
Also remember there are in-storage control blocks for BCSs and VVDSs. Users
on one system may experience problems accessing data sets through a given
BCS or VVDS, but users on other systems may not and DIAGNOSE completes
with a return code zero. Simply refreshing the control blocks by closing the BCS
42
or VVDS with the appropriate MVS command may quickly solve your problems.
Try the CLOSE commands before using UNALLOCATE. In any case, the BCS or
VVDS is opened by the next request that accesses it, and the control blocks are
rebuilt at that time.
MODIFY
MODIFY
MODIFY
MODIFY
CATALOG,CLOSE(catname)
CATALOG,UNALLOCATE(catname)
CATALOG,VCLOSE(volser)
CATALOG,VUNALLOCATE
F CATALOG,LIST
IEC347I LIST CATALOG TASK(S)
*CAS****************************************************************
* FLAGS - TASK ADDRESS - JOBNAME / STEPNAME - ELAPSED TIME - ID *
* -W-E-007AF090
YCJRES3 / IKJACCT
00.02.12
01 *
* WAITING FOR BCS ENQ Shr
FROM 0FC172E0 FOR 00.02.12
*
* -W-E-00784288
YCJRES1 / IKJACCT
00.01.36
02 *
* WAITING FOR BCS ENQ Shr
FROM 0FC172E0 FOR 00.01.36
*
********************************************************************
* O-OLDEST, W-WAIT, A-ABEND, E-ENQ, R-RECALL, L-RLS
*
*CAS****************************************************************
With the information from the CAS task and status display, you might consider
canceling one of the jobs that is holding the ENQ. To clear this condition, for one
of the tasks, issue the command:
F CATALOG,END(id)
43
The F CATALOG,RESTART command should be used only when your only other
option is to IPL the system. CAS is designed to be restarted with minimal impact
on your system. Any catalog requests in process at the time are redriven.
However, in the unlikely event that restart fails, it will be necessary to IPL the
system to recover.
F CATALOG,LIST
IEC347I LIST CATALOG TASK(S)
*CAS****************************************************************
* FLAGS - TASK ADDRESS - JOBNAME / STEPNAME - ELAPSED TIME - ID *
* -W-E-007AF090
YCJRES3 / IKJACCT
00.02.12
01 *
* WAITING FOR BCS ENQ Shr
FROM 0FC172E0 FOR 00.02.12
*
* -W-E-00784288
YCJRES1 / IKJACCT
00.01.36
02 *
* WAITING FOR BCS ENQ Shr
FROM 0FC172E0 FOR 00.01.36
*
********************************************************************
* O-OLDEST, W-WAIT, A-ABEND, E-ENQ, R-RECALL, L-RLS
*
*CAS****************************************************************
Figure 3-13 Step 1: TSO user IDs waiting for BCS ENQ
44
C U=YCJRES1
F CATALOG,LIST
IEC347I LIST CATALOG TASK(S)
*CAS****************************************************************
* FLAGS - TASK ADDRESS - JOBNAME / STEPNAME - ELAPSED TIME - ID *
* -W-E-007AF090
YCJRES3 / IKJACCT
00.03.48
01 *
* WAITING FOR BCS ENQ Shr
FROM 0FC172E0 FOR 00.03.48
*
* -W-E-007827C0
YCJRES1 / IKJACCT
00.00.50
02 *
* WAITING FOR BCS ENQ Shr
FROM 0FC172E0 FOR 00.00.50
*
********************************************************************
* O-OLDEST, W-WAIT, A-ABEND, E-ENQ, R-RECALL, L-RLS
*
*CAS****************************************************************
3. In Figure 3-15, we attempt to end and redrive the user IDs YCJRES1s
catalog request by issuing the F CATALOG,END(02) command. A subsequent F
CATALOG,LIST command shows that the previous command did not work. Task
02 is still waiting for a BCS ENQ.
F CATALOG,END(02)
F CATALOG,LIST
IEC347I LIST CATALOG TASK(S)
*CAS****************************************************************
* FLAGS - TASK ADDRESS - JOBNAME / STEPNAME - ELAPSED TIME - ID *
* -W-E-007AF090
YCJRES3 / IKJACCT
00.06.04
01 *
* WAITING FOR BCS ENQ Shr
FROM 0FC172E0 FOR 00.06.04
*
* -W-E-007827C0
YCJRES1 / IKJACCT
00.00.44
02 *
* WAITING FOR BCS ENQ Shr
FROM 0FC172E0 FOR 00.00.44
*
********************************************************************
* O-OLDEST, W-WAIT, A-ABEND, E-ENQ, R-RECALL, L-RLS
*
*CAS****************************************************************
45
C U=YCJRES1
C U=YCJRES3
F CATALOG,LIST
IEC347I LIST CATALOG TASK(S)
*CAS****************************************************************
* FLAGS - TASK ADDRESS - JOBNAME / STEPNAME - ELAPSED TIME - ID *
* -W-E-007827C0
YCJRES1 / IKJACCT
00.02.51
02 *
* WAITING FOR BCS ENQ Shr
FROM 0FC172E0 FOR 00.02.51
*
********************************************************************
* O-OLDEST, W-WAIT, A-ABEND, E-ENQ, R-RECALL, L-RLS
*
*CAS****************************************************************
F CATALOG,ABEND(02)
F CATALOG,LIST
IEC347I LIST CATALOG TASK(S)
*CAS****************************************************************
* FLAGS - TASK ADDRESS - JOBNAME / STEPNAME - ELAPSED TIME - ID *
* -----NOACTIVE / NONE
00.00.00
*
********************************************************************
* O-OLDEST, W-WAIT, A-ABEND, E-ENQ, R-RECALL, L-RLS
*
*CAS****************************************************************
6. User YCJRES1 attempts to logon and hangs again. In Figure 3-18, a display
of GRS data shows two tasks in the CATALOG address space that do not
appear in Figure 3-17.
46
D GRS,C
ISG343I 20.24.49 GRS STATUS
S=SYSTEMS SYSIGGV2 UCAT.CRPLUS1
SYSNAME
JOBNAME
ASID
TCBADDR
EXC/SHR
SC63
CATALOG / *UNKNOW 002F/0000 007AF700 EXCLUSIVE
SC63
CATALOG / *UNKNOW 002F/0000 00782640
SHARE
NO REQUESTS PENDING FOR ISGLOCK STRUCTURE
NO LATCH CONTENTION EXISTS
STATUS
OWN
WAIT
F CATALOG,RESTART
IEF450I IEESYSAS CATALOG - ABEND=S81A U0000 REASON=00000005
IEC355I IDACAT13, CATALOG ADDRESS SPACE IS RESTARTING
IEC357I IDACAT13, CATALOG ADDRESS SPACE RESTARTED
IEF403I IEESYSAS - STARTED - ASID=0050.
IEC350I CATALOG ADDRESS SPACE MODIFY COMMAND AVAILABLE
IEC377I ENHANCED CATALOG SHARING: CONNECT COMPLETE
IXL014I IXLCONN REQUEST FOR STRUCTURE SYSIGGCAS_ECS 660
WAS SUCCESSFUL. JOBNAME: CATALOG ASID: 0050
CONNECTOR NAME: IXCLO00E0001 CFNAME: CF01
IEC377I ENHANCED CATALOG SHARING: AUTOADD IS NOT CURRENTLY ENABLED
IEC368I - CATALOG INITIALIZATION 663
THE MULTILEVEL ALIAS FACILITY HAS BEEN INITIALIZED
THE NUMBER OF LEVELS OF QUALIFICATION IS 1
IEC378I UCAT.VSBOX01 IS NOT USING ENHANCED CATALOG SHARING
8. CAS was successfully restarted. The display of GRS data in Figure 3-20
shows the catalog ENQ resource contention is cleared. After that, TSO users
YCJRES1 and YCJRES3 could logon.
D GRS,C
ISG343I 20.27.25 GRS STATUS
NO ENQ RESOURCE CONTENTION EXISTS
NO REQUESTS PENDING FOR ISGLOCK STRUCTURE
NO LATCH CONTENTION EXISTS
47
48
Chapter 4.
Recovering catalogs
This chapter discusses the importance of an effective recovery strategy for
catalogs in your environment. It also describes the techniques and utilities that
are available for performing a successful recovery.
The sections in this chapter cover:
Recovery strategy
Recovery utilities
Considerations for the recovery process
Forward recovery
49
50
you need to do it. The ZAP facility of Catalog RecoveryPlus, discussed in 6.9,
ZAP command on page 107, and the ad hoc tool VVDSFIX, discussed in 4.3.4,
VVDS recovery on page 57, can help you when you need to attempt to repair a
BCS or VVDS.
That leaves you with salvage. IDCAMS REPRO MERGECAT can be used to
move entries out of a broken catalog. The potentially lengthy and tedious process
is discussed in 4.2.4, Using REPRO MERGECAT to salvage a catalog on
page 54.
Recover utility
Alias handling
IDCAMS EXPORT
IDCAMS IMPORT
No alias handling
DFSMShsm BACKDS
DFSMShsm RECOVER
Regardless of the technique used for backup and recovery, you need to check for
changes to the BCS that are not reflected in the restored copy, as well as alias
changes that were made after the backup.
51
//STEP1
EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN
DD *
ALTER UCAT.CRPLUS2 LOCK
The LOCK parameter is also available on the DEFINE UCAT and IMPORT
commands. Once you complete forward recovery and are ready to allow general
access, unlock the catalog with the ALTER UNLOCK command. The catalog can
be locked/unlocked from any one system and does not have to be unlocked from
the same system that locked it.
The lock attribute is recognized by all systems and eliminates the need to
quiesce applications, vary volumes offline to sharing systems, or terminate users
during catalog recovery. While the catalog is locked, unauthorized requests to
access it simply fail with a return code indicating the catalog is temporarily
unavailable.
This results in the BCS being deleted, as well as the connector record and
aliases for it in the master catalog on the system where the command is
executed. Other master catalogs are not affected. The DELETE UCAT
RECOVERY command is like a big DELETE NOSCRATCH. The entire catalog is
deleted, but the data sets are not touched. Any VSAM or system-managed
non-VSAM data sets are simply temporarily inaccessible.
52
//STEP1
EXEC PGM=ADRDSSU
//SYSPRINT DD SYSOUT=*
//INDD
DD DSN=CRPLUS2.BACKUP(0),DISP=SHR
//OUTDD
DD UNIT=SYSDA,VOL=SER=SBOX01,DISP=SHR
//SYSIN
DD *
RESTORE DATASET(INCLUDE(UCAT.CRPLUS2)) INDDNAME(INDD) OUTDDNAME(OUTDD)
53
If the catalog to be restored has been pre-allocated, you must specify the
REPLACE keyword on the DFSMSdss RESTORE job.
2. Copy the contents of the source catalog into the target catalog using the
command:
REPRO MERGECAT INDATASET(BCS.source) OUTDATASET(BCS.target)
54
7. Copy the contents of the target catalog to the new source catalog using the
command:
REPRO MERGECAT IDS(BCS.target) ODS(BCS.source)
The process may take a great deal of time and should only be considered when
recovery is not possible.
See Chapter 6, Using Catalog RecoveryPlus on page 69, for information on
how that product can help you salvage a BCS.
SYSLOG output
JOBLOG output
LOGREC output
Dumps
IEHLIST LISTVTOC output
DIAGNOSE and EXAMINE output
Print of BCS or VVDS records
Print of an entire BCS or VVDS
These items may be necessary for you or IBM support to determine what
happened.
Although the basic structure of the master, user, and tape volume catalogs is the
same, their requirements for recovery differ enough to make it worthwhile to
discuss them separately.
55
56
57
Event recorded
60 (X3C)
61 (X3D)
65 (X41)
66 (X42)
58
//SYSIN DD *
OPTION VLSHRT
RECORD TYPE=V
INCLUDE COND=((6,1,BI,EQ,X'3D'),AND,
(11,4,BI,GT,X'0101269F'),AND,
(76,44,CH,EQ,C'UCAT.CRPLUS1'))
SORT FIELDS=(11,4,BI,A,7,4,BI,A)
Figure 4-4 shows an example of DFSORT control statements to collect all BCS
related record types (types 61, 65, and 66).
//SYSIN
DD *
OPTION VLSHRT
RECORD TYPE=V
INCLUDE COND=(((6,1,BI,EQ,X'3D'),OR,
(6,1,BI,EQ,X'41'),OR,
(6,1,BI,EQ,X'42')),AND,
(11,4,BI,GT,X'0101269F'),AND,
(76,44,CH,EQ,C'UCAT.CRPLUS1'))
SORT FIELDS=(11,4,BI,A,7,4,BI,A)
Figure 4-4 DFSORT statements to extract SMF record types 61, 65, and 66
SMF records are also written as VVDS entries are inserted, deleted, or altered.
Figure 4-5 shows the control statements to select type 60 records.
59
//SYSIN DD *
OPTION VLSHRT
RECORD TYPE=V
INCLUDE COND=((6,1,BI,EQ,X'3C'),AND,
(11,4,BI,GT,X'0101269F'),AND,
(76,44,CH,EQ,C'SYS1.VVDS.VSBOX03'))
SORT FIELDS=(11,4,BI,A,7,4,BI,A)
For more information with respect to the format and contents of the SMF records,
see MVS System Management Facilities (SMF), SA22-7630. For additional
information on DFSORT parameters, see DFSORT R14 Application
Programming Guide, SC33-4035.
60
Chapter 5.
Using ICFRU
This chapter explains how to use the IBM Integrated Catalog Forward Recovery
Utility (ICFRU), an ICF catalog recovery tool. With ICFRU, you can forward
recover ICF catalogs using selected SMF records.
ICFRU requires an error-free copy of a backup of the ICF catalog being
recovered. The backup must be created by the IDCAMS EXPORT command.
61
62
SC64
SC65
REPORTS
SMFIN
(SYSPRINT)
ICFRRSV
PARAMETERS
MESSAGES
SMFOUT
(SYSLOG)
SELECTED SMF
CATALOG
RECORDS
SORTIN
SYSIN
SYSPRINT
SORT
SORTOUT
OLD CATALOG
EXPORTED COPY
SORTED SMF
CATALOG
RECORDS
EXPIN
SMFIN
REPORTS
(SYSPRINT)
PARAMETERS
ICFRRAP
MESSAGES
EXPOUT
(SYSLOG)
NEW SORTED
EXPORT COPY
INFILE
SYSIN
IDCAMS
IMPORT
SYSPRINT
OUTDATASET
RECOVERED
CATALOG
To create an error free copy of the ICF catalog, use the file that was created by
ICFRU as input to the IDCAMS IMPORT command. This new version of the ICF
catalog is now error free.
63
ICFRU does not provide any mechanism to lock an ICF catalog. To lock an ICF
catalog prior to commencing the recovery, use the IDCAMS ALTER command,
specifying the lock parameter. This ensures that no updates take place to the ICF
catalog during the recovery process.
Figure 5-2 and Figure 5-3 show an example of the JCL that is required to run
ICFRU to forward recover an ICF user or master catalog.
64
//
IF (S2.RC = 0) THEN
//S3 EXEC PGM=ICFRRAP,
// PARM=('&ICFCAT.,&STARTDTE.,&STARTIME.,&ENDDATE.,&ENDTIME.,&GAPTIME.',
//
'&CLOCKDIF.')
//SYSPRINT DD SYSOUT=*
//SYSLOG
DD SYSOUT=*
//SMFIN
DD DSN=YCJRES1.SMFCAT.DATA.SORTED,DISP=(OLD,DELETE)
//EXPIN
DD DSN=YCJRES1.CRPLUS1.EXPORT.BACKUP(0),DISP=SHR
//EXPOUT
DD DSN=YCJRES1.CRPLUS1.EXPORT.BACKUP(+1),
//
DISP=(,CATLG,DELETE),UNIT=SYSALLDA,
//
SPACE=(CYL,(10,10),RLSE)
//
ENDIF
PAGE 01
Figure 5-5 shows the output report from ICFRRAP. You can see that 272 records
were selected from the SMF data and used in the creation of the new export data
set.
65
ICFRRAP SYSPRINT
7,868 TOTAL
7,596
272
7,598 TOTAL
7,596
2
0
274 TOTAL
272
2
0
7,868 TOTAL
4 TOTAL
7,872 TOTAL
If the job completes with a condition code of zero (0), it means that you
successfully read a catalog record from the recovered ICF catalog.
2. Unlock the ICF catalog using the IDCAMS ALTER command. If you do not
unlock the recovered ICF catalog, all users and batch jobs are denied access
to any file that is cataloged in it. The format of the ALTER command is:
ALTER UCAT.CRPLUS2 UNLOCK
66
3. Ensure that the structural integrity of the recovered ICF catalog is intact by
using the IDCAMS EXAMINE INDEXTEST command. This validates that the
recovered ICF catalogs vertical and horizontal pointers in the index
component are correct. The format of the EXAMINE command is:
EXAMINE NAME(UCAT.CRPLUS2) INDEXTEST
4. Create a current backup copy of the recovered catalog. You may use the
IDCAMS EXPORT command to use ICFRU again in case a new problem is
detected.
67
68
Chapter 6.
69
70
BACKUP
RECOVER
DIAGNOSE
MERGECAT
There are several more commands and features in Catalog RecoveryPlus that
are not covered in this redbook, because they are relevant to day-to-day ICF
catalog maintenance, and not to ICF catalog backup and recovery. These
include, for example, the ALTER command to make data value changes to BCS
and VVDS records.
Utilities:
4 Backup
5 Recover BCS
6 Recover VVDS
7 Mergecat
8 Superclip
9 ZAP
X
10
11
12
13
14
15
Alter BCS-BACK-POINTERS
Alter BCS-DEVICETYPE
Alter BCS-VOLSER
Diagnose Alias
Diagnose BCS-VVDS
Diagnose VVDS-BCS
Exit
Copyright (C) 2001 Mainstar Software Corporation
All Rights Reserved
71
The CR+ Submit Backup panel is shown in Figure 6-2. It provides the ability to
specify all keywords and parameters as on a batch-submitted command. After
the panel is completed, a batch job is created, ready for submission of the
BACKUP command.
=>
=>
=>
=>
B
B -BCS, V -VVDS
1 CATALOGS SELECTED
'EXAMPLE.ODS.CATALOG.BACKUP.DSN'
________
OUTPUT dataset must not exist
(BCS/VVDS)
=> N
=> E
=> O
=> N
=> N
=> N
Y
I
O
Y
N
Y
or N
-Informational, W -Warnings, E -Errors
-OLD, S -SHR
or N
-None, F -Full
or N
Figure 6-3 and Figure 6-4 show the CR+ Submit Recover BCS and VVDS
panels, which also create a batch job for submission of the RECOVER
command.
72
73
=>
=>
=>
=>
BKP001
________
__________________________________________
__________________________________________
ADVANCED OPTIONS:
SIMULATE
=> D
PRINT
=> N
INTOEMPTY
=> N
74
MAINSTAR.CR+
MAINSTAR.CR+.BACKUP
MAINSTAR.CR+.BACKUP.BCS
MAINSTAR.CR+.BACKUP.VVDS
MAINSTAR.CR+.DIAGNOSE
MAINSTAR.CR+.DIAGNOSE.BCS-VVDS
MAINSTAR.CR+.DIAGNOSE.VVDS-BCS
MAINSTAR.CR+.DIAGNOSE.ALIAS
MAINSTAR.CR+.EXPLORE
MAINSTAR.CR+.ALTER
MAINSTAR.CR+.ALTER.BCS-DEVICETYPE
MAINSTAR.CR+.ALTER.BCS-VOLSER
MAINSTAR.CR+.ALTER.BCS-BACK-POINTERS
MAINSTAR.CR+.MERGECAT
MAINSTAR.CR+.RECOVER
MAINSTAR.CR+.RECOVER.BCS
MAINSTAR.CR+.RECOVER.VVDS
MAINSTAR.CR+.SUPERCLIP
MAINSTAR.CR+.ZAP
MAINSTAR.CR+.ZAP.VVDS
MAINSTAR.CR+.ZAP.VVDS.DELETE
MAINSTAR.CR+.ZAP.VVDS.PATCH
MAINSTAR.CR+.ZAP.VVDS.PRINT
MAINSTAR.CR+.ZAP.BCS
MAINSTAR.CR+.ZAP.BCS.DELETE
MAINSTAR.CR+.ZAP.BCS.PATCH
MAINSTAR.CR+.ZAP.BCS.PRINT
MAINSTAR.CR+.ZAP.DSN
MAINSTAR.CR+.ZAP.DSN.DELETE
MAINSTAR.CR+.ZAP.DSN.PATCH
MAINSTAR.CR+.ZAP.DSN.PRINT
75
//BCKCPY DD DSN=BKUP.CATBAKS(+1),DISP=(,CATLG),
//
UNIT=SYSALLDA,SPACE=(CYL,(10,10),RLSE)
BACKUP BCS(UCAT.CRPLUS1) OUTFILE(BCKCPY)
Or, you can back up multiple, explicitly-specified BCSs, all of which are backed
up to the single output file designated by the OUTFILE keyword, as illustrated in
Figure 6-7.
//BCKCPY DD DSN=BKUP.CATBAKS(+1),DISP=(,CATLG),
//
UNIT=SYSALLDA,SPACE=(CYL,(10,10),RLSE)
BACKUP BCS(UCAT.CRPLUS1 UCAT.CRPLUS2 UCAT.CRPLUS3) OUTFILE(BCKCPY)
Or, you can back up multiple BCSs, by specifying a mask filter value. Again, all of
the BCSs selected by the mask filter are backed up to the single output file. In
Figure 6-8, all BCSs that match the mask value UCAT.CRPLUS* are backed up.
76
//BCKCPY DD DSN=BKUP.CATBAKS(+1),DISP=(,CATLG),
//
UNIT=SYSALLDA,SPACE=(CYL,(10,10),RLSE)
BACKUP BCS(UCAT.CRPLUS*) OUTFILE(BCKCPY)
When using mask filter values to identify BCSs, you can also use the
EXCLUDEBCS keyword, as shown in Figure 6-9, to specifically exclude those
BCSs that you do not want to include in the selection list created by the mask
filter.
//BCKCPY DD DSN=BKUP.CATBAKS(+1),DISP=(,CATLG),
//
UNIT=SYSALLDA,SPACE=(CYL,(10,10),RLSE)
BACKUP BCS(UCAT.CRPLUS*) EXCLUDEBCS(UCAT.CRPLUS10) OUTFILE(BCKCPY)
//BCKCPY DD DSN=BKUP.CATBAKS(+1),DISP=(,CATLG),
//
UNIT=SYSALLDA,SPACE=(CYL,(10,10),RLSE)
BACKUP BCS(**) OUTFILE(BCKCPY)
The reason this technique is so valuable is that you can add and remove user
catalogs, or change names of existing catalogs, without having to worry about
updating the catalog backup jobs.
A real-world example of how things can go wrong may illustrate the value of this.
The system programmer at an installation discovered a broken catalog when
they ran an EXAMINE INDEXTEST on all of their catalogs. The EXAMINE error
message indicated duplicate key and out-of-sequence records within a data CI of
his catalog. They searched for the backup of that particular BCS, so that a
77
recovery could be started, only to find there was no backup. Two years earlier,
when the catalog was first allocated, someone forgot to add the appropriate new
EXPORT step in the catalog backup job for this catalog, and all this time passed
without any backups being taken. With the double-asterisk facility in the Catalog
RecoveryPlus BACKUP command, any new, deleted, or renamed catalogs are
automatically put into the selection list the next time BACKUP is executed.
Or, you code the following mask in your command that executes once a day:
BACKUP BCS(UCAT.PROD.**) ...
78
//BCKCPY DD DSN=BKUP.VVDSBAKS(+1),DISP=(,CATLG),
//
UNIT=SYSALLDA,SPACE=(CYL,(10,10),RLSE)
BACKUP VVDS(VBOX01) OUTFILE(BCKCPY)
Or, you can specify multiple, explicit VVDS names, as illustrated in Figure 6-12,
all of which will be backed up to the single output file designated by the OUTFILE
keyword.
//BCKCPY DD DSN=BKUP.VVDSBAKS(+1),DISP=(,CATLG),
//
UNIT=SYSALLDA,SPACE=(CYL,(10,10),RLSE)
BACKUP VVDS(VBOX01 VBOX02 VBOX03) OUTFILE(BCKCPY)
Or, you can specify a volser mask, and all of the VVDSs selected by the mask
filter will be backed up to the single output file. In Figure 6-13, all VVDSs that
match the mask value VBOX* are backed up.
//BCKCPY DD DSN=BKUP.VVDSBAKS(+1),DISP=(,CATLG),
//
UNIT=SYSALLDA,SPACE=(CYL,(10,10),RLSE)
BACKUP VVDS(VBOX*) OUTFILE(BCKCPY)
Or, you can back up the VVDSs on all volumes in your entire system, as
illustrated in Figure 6-14.
//BCKCPY DD DSN=BKUP.VVDSBAKS(+1),DISP=(,CATLG),
//
UNIT=SYSALLDA,SPACE=(CYL,(10,10),RLSE)
BACKUP VVDS(**) OUTFILE(BCKCPY)
When using mask filter values to identify VVDSs, you can also use the
EXCLUDEVVDS keyword, to specifically exclude those VVDSs that you do not
want to include in the selection list created by the mask filter, as shown in
Figure 6-15.
79
//BCKCPY DD DSN=BKUP.VVDSBAKS(+1),DISP=(,CATLG),
//
UNIT=SYSALLDA,SPACE=(CYL,(10,10),RLSE)
BACKUP VVDS(VBOX*) EXCLUDEVVDS(VBOX10) OUTFILE(BCKPY)
80
DIAGNOSEBCS
81
When backing up the VVDS, similar considerations apply. But there is one
difference. When RESERVE is specified for VVDS backup processing, an ENQ
with the RESERVE option is in effect throughout the time of the backup. This
locks up the entire volume from any I/O for the duration of the VVDS backup
(which is only 1 to 2 seconds), and is something you should take into account.
//BCKCPY1 DD DSN=BKUP1.CATBAKS(+1),DISP=(,CATLG),
//
UNIT=SYSALLDA,SPACE=(CYL,(10,10),RLSE)
//BCKCPY2 DD DSN=BKUP2.CATBAKS(+1),DISP=(,CATLG),
//
UNIT=SYSALLDA,SPACE=(CYL,(10,10),RLSE)
BACKUP BCS(**) OUTFILE(BCKCPY1,BCKCPY2)
The various reasons for creating multiple backup copies are thoroughly
discussed in Chapter 2, Backing up catalogs on page 11. But it might help if
one of those reasons is reinforced again. Do not forget that backup files need to
be cataloged in order to locate them when a recovery is necessary. If the catalog
that needs to be restored happens to be the one where the backup is cataloged,
you could be in big trouble. If the backup is on disk, even if you can locate the
specific disk volser on which it resides, you need to recatalog it before it can be
accessed in the catalog recovery job. Recataloging could be difficult, since
catalog management forces it to a catalog of the same name (and right now, that
catalog is the one that requires recovery).
Perhaps the best and easiest solution is to establish a fundamental catalog
backup methodology that plans ahead for this situation. To do this, first create
two dedicated catalogs, to be used just for cataloging the backups of your ICF
catalog environment. Assign each catalog a single alias that identifies the catalog
backups that will be cataloged in it. With two catalogs, where you catalog only
the catalog backups in each catalog, there is less risk of failure to your backup
catalog. You would then run the BACKUP command specifying backup copies,
with different high-level qualifiers in their data set name, so that each backup
copy is cataloged in its respective catalog.
With this technique of multiple backup copies, each cataloged in a different
catalog. If a failure occurs in one catalog where your BCS or VVDS backups are
cataloged, you can use the other copy to recover.
82
Assigned
Alias: BKUP1
Assigned
Alias: BKUP2
BCS1
BCS2
...
BCSn
BKUP1.CATBACKS(+1)
BKUP2.CATBACKS(+1)
Copy 1 of all
BCSs backed
up here
Copy 2 of all
BCSs backed
up here
83
Another concern may be how much overhead a duplex backup adds to your BCS
or VVDS backup job. As you would expect, there will be a relatively small
increase in EXCPs, but other performance-related factors should not change. To
illustrate this, we created two sets of tests in our lab the first with duplex BCS
backups and the second with duplex VVDS backups.
In our duplex BCS backup test, we backed up 28 BCSs, where Test1 created a
single backup copy, and Test2 created two backup copies. The 28 BCSs
contained a cumulative total of 63,216 catalog records (which is not very large,
but this example is intended to give you relative differences). As you can see in
Table 6-1, the EXCPs only increased from 4,008 in Test1 to 4,253 in Test2, or
slightly more than 5%, for a test that was a complete duplication of the backup
files.
Table 6-1 Duplex BCS backup overhead statistics
Test
Backup
copies
Elapsed time
CPU time
EXCPs
#1
15 sec
.02 sec
4,008
#2
15 sec
.02 sec
4,253
In our duplex VVDS backup test, we backed up 66 VVDSs, where Test3 created
a single backup copy, and Test4 created two backup copies. During BACKUP
selection processing, the specified volser mask encountered and identified 29
volumes that would not be included, because they were non-system-managed
and did not have a VVDS allocated on them. Our test BACKUP job automatically
ran the IDCAMS DIAGNOSE VVDS on each VVDS (and in fact, encountered one
VVDS that had errors, so the test times included dumping the VVDS record to
SYSPRINT). All VVDSs were allocated at the default size of TRK(10 10). As you
can see in Table 6-2, the elapsed time was exactly the same (recording accuracy
was only to a second), CPU time was the same (recording accuracy of 1/100th of
a second), and EXCPs increased by less than 1%.
Table 6-2 Duplex VVDS backup overhead statistics
84
Test
Backup
copies
Elapsed time
CPU time
EXCPs
#3
1 min, 54 sec
.11 sec
33,667
#4
1 min, 54 sec
.11 sec
33,926
85
Restore
The term restore means that RECOVER is to retrieve backup records from the
input file, and write them to the output BCS or VVDS, exactly as they are in the
backup file, without updating them with SMF records. The term forward recover
means that RECOVER not only restores the backup records, but also applies any
updates to them, as indicated by relevant SMF records, to bring the catalog
forward to a more current time than it was at the time the backup was taken.
If that is all you want to do, the restored BCS or VVDS will have identical records
in it to those in the BCS or VVDS at the exact time of BACKUP processing. This
is usually an appropriate function to perform in situations where your BACKUP
and RECOVER command are executed in quick succession. There are no BCS
or VVDS updates that occur between the time of the BACKUP and the time of the
RECOVER. Valid examples of when you may perform just a restore include:
For a BCS, if you decide to reorganize it
For a BCS, if you need to change any of the allocation parameters, such as
allocated size, volser, CI size, the FREESPACE parameter, remove the
IMBED parameter, or other changes
For a BCS, when you are renaming it (see 6.5.6, Renaming the BCS during
restore on page 89, for more details of this facility)
For a BCS, when you determine that the error condition is a structural index
failure, and to repair it, you need to backup and restore, to rebuild the index
(see 7.1, Case study #1: Ensuring good backups on page 113, for a real-life
situation where this occurred)
For a VVDS, if you need to change the physical allocated size (see 7.6, Case
study #6: Changing a disk volser on page 131, for details and an example of
how to do this)
86
Forward recovery
Forward recovery of a BCS or VVDS is the process of applying all updates to the
BCS or VVDS that occurred between the backup start time and the restore, at
the time the restore is taking place. When this process is to be performed, it is
typical for the FROMBACKUPDATE and TOCURRENTDATE options to be in
effect, in which the backup time is retrieved from the backup file, and used as the
starting time from which SMF records are analyzed. The forward recovery ending
time is the time that the RECOVER command was initiated. If desired, alternative
FROM and TO dates and times can be specified.
//BCKCPY DD DSN=BKUP.CATBAKS(0),DISP=SHR
RECOVER BCS(UCAT.CRPLUS1) INFILE(BCKCPY)
For RECOVER VVDS, the specification must be the full volser of the volume on
which the VVDS is to be recovered (and not the actual VVDS data set name).
//BCKCPY DD DSN=BKUP.VVDSBAKS(0),DISP=SHR
RECOVER VVDS(VBOX01) INFILE(BCKCPY)
87
purposes and that all data sets defined in it are to remain untouched. Then, using
the self-describing information that was written to the backup file, an IDCAMS
DEFINE USERCATALOG (in the case of RECOVER BCS) or DEFINE CLUSTER
command (in the case of RECOVER VVDS) is constructed and issued.
If you want, you can issue your own DELETE/DEFINE of the BCS or VVDS, in
which case you then specify INTOEMPTY on the RECOVER command. For a
BCS, this allows you to change the volser, physical allocation values, or any of
the VSAM attribute values, such as CISZ. For a VVDS, this allows you to change
the physical allocation values, but you cannot change anything else. You would
also use this technique if you want to change a BCS name. Refer to 6.5.6,
Renaming the BCS during restore on page 89, for more details.
88
89
//S1 EXEC -- Catalog RecoveryPlus, with all of its regular JCL -//BCKCPY DD DSN=BKUP.CRPLUS1,DISP=(,CATLG),
//
UNIT=SYSALLDA,SPACE=(CYL,(10,10),RLSE)
BACKUP BCS(UCAT.CRPLUS1) OUTFILE(BCKCPY)
//S2 EXEC PGM=IDCAMS
//SBOX02 DD VOL=SER=SBOX02,UNIT=SYSALLDA,DISP=SHR
//SBOX36 DD VOL=SER=SBOX36,UNIT=SYSALLDA,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DELETE UCAT.CRPLUS1 USERCATALOG FILE(SBOX02) RECOVERY
DEFINE USERCATALOG (NAME(UCAT.CRPLUS5) ICFCATALOG CYL(10 ) BUFND(27) STRNO(8) VOLUME(SBOX36)) DATA(CISZ(4096)) INDEX(CISZ(1024) BUFNI(4))
//S3 EXEC -- Catalog RecoveryPlus, with all of its regular JCL -//BCKCPY DD DSN=BKUP.CRPLUS1,DISP=SHR
RECOVER BCS(UCAT.CRPLUS1) INFILE(BCKCPY) INTOEMPTY NEWNAME(UCAT.CRPLUS5) JOURNAL(YCJRES2.CRPLUS1.RECOVER.JOURNAL)
Forward recovery of a VVDS uses SMF record type 60, which represents a
VVDS record insert, update, or delete, and applies to both VVR changes for
VSAM data set components, and NVR changes for non-VSAM data sets.
90
Only dumped SMF data is acceptable to RECOVER. This requires you to issue
an I SMF switch command for the in-use MANX/Y file, and then dump the SMF
data to a file that can be used as input to the RECOVER process.
With the Catalog RecoveryPlus RECOVER command, it is not necessary to
pre-extract the SMF records that will be used. Instead, you can simply gather up
all SMF dump data from all systems sharing the BCS or VVDS. As illustrated in
Figure 6-21 and Figure 6-22, you then concatenate all of the dumped SMF files
on the DD statement identified in the FORWARD(SMFFILE(ddname)) keyword.
//BCKCPY
//SMFINDD
//
//
DD
DD
DD
DD
DSN=BKUP.CATBAKS(0),DISP=SRH
DSN=YCJRES1.SC63.SMFDATA,DISP=SHR
DSN=YCJRES1.SC64.SMFDATA,DISP=SHR
DSN=YCJRES1.SC65.SMFDATA,DISP=SHR
//BCKCPY
//SMFINDD
//
//
DD
DD
DD
DD
DSN=BKUP.VVDSBAKS(0),DISP=SHR
DSN=YCJRES1.SC63.SMFDATA,DISP=SHR
DSN=YCJRES1.SC64.SMFDATA,DISP=SHR
DSN=YCJRES1.SC65.SMFDATA,DISP=SHR
91
Figure 6-23 shows the BACKUP/RECOVER BCS logic flow. In the first step, the
BACKUP BCS command create a backup copy of multiple BCSs into a single file.
This file is used in the second step to forward recover BCS4. You can see how
the SMF dump files for all the systems are used along with the backup copy of
BCS4. Sample BACKUP BCS commands are shown in 6.4.1, Specifying BCSs
to be backed up on page 76.
VOL001
BCS1
BACKUP
Command
Parameters
VOL002
1
backup
catalog
BCS2
Reports
Messages
(SYSPRINT)
BACKUP
Command
Processor
BCS3
CATVOL
MCATA
VOL003
CATBAK(+1)
BCS4
BCS4
to be
2
recover
catalog
red
Resto
CATBAK(0)
RECOVER
Command
Parameters
CATBAK(-1)
e
na t
cate
Con
RECOVER
Command
Processor
SMF
Dump
s
File
SMF
SMF
Dump
VOL003
New BCS4
Old BCS4
Forward
Recovery
of BCS4
92
SMF
SMF
Dump
Sorted,
Extracted
SMF
Records
Figure 6-24 shows the BACKUP/RECOVER VVDS logic flow. In the first step, the
BACKUP VVDS command creates a backup copy of multiple VVDSs into a single
file. This file is used in the second step to forward recover the VVDS in VOL003.
You can see how the SMF dump files for all the systems are used along with the
backup copy of the VVDS. Sample BACKUP VVDS commands are shown in
6.4.2, Specifying VVDSs to be backed up on page 78.
VOL001
VVDS
BACKUP
Command
Parameters
VOL002
VVDS
1
backup
VVDSs
Reports
Messages
(SYSPRINT)
BACKUP
Command
Processor
CATVOL
VVDS
VOL003
VVDSBAK(+1)
VVDS
VVDS
on
03
VOL0
to b e
VVDSBAK(0)
RECOVER
Command
Parameters
red
Resto
VVDSBAK(-1)
iles
FF
SM
ate
n
e
cat
Con
RECOVER
Command
Processor
SMF
Dump
recover
a VVDS
SMF
Dump
VOL003
New VVDS
OldVVDS
Forward
Recovery
of VVDS
SMF
SMF
Dump
Sorted,
Extracted
SMF
Recprds
93
94
//BCKCPY
//SMFINDD
//
//
DD
DD
DD
DD
DSN=BKUP.CATBAKS(0),DISP=SRH
DSN=YCJRES1.SC63.SMFDATA,DISP=SHR
DSN=YCJRES1.SC64.SMFDATA,DISP=SHR
DSN=YCJRES1.SC65.SMFDATA,DISP=SHR
//BCKCPY
//SMFINDD
//
//
DD
DD
DD
DD
DSN=BKUP.VVDSBAKS(0),DISP=SHR
DSN=YCJRES1.SC63.SMFDATA,DISP=SHR
DSN=YCJRES1.SC64.SMFDATA,DISP=SHR
DSN=YCJRES1.SC65.SMFDATA,DISP=SHR
95
96
//FIXDD
//
//
DD DSN=YCJRES1.CRPLUS.DIAG.ALIAS.FIXFILE,DISP=(,CATLG),
UNIT=SYSALLDA,SPACE=(CYL,(1,1),RLSE),
DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
97
//FIXDD
//
//
DD DSN=YCJRES1.CRPLUS.DIAG.ALIAS.FIXFILE,DISP=(,CATLG),
UNIT=SYSALLDA,SPACE=(CYL,(1,1),RLSE),
DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
EXCLUDE/INCLUDE keywords
The DIAGNOSE ALIAS command provides EXCLUDE and INCLUDE keywords,
for both alias and user catalog specification, so that you can tailor the commands
execution more closely to your requirements. The example in Figure 6-29 shows
a situation where we only want to synchronize the master catalogs with respect
to aliases related to the user catalogs under our control.
//FIXDD
//
//
DD DSN=YCJRES1.CRPLUS.DIAG.ALIAS.FIXFILE,DISP=(,CATLG),
UNIT=SYSALLDA,SPACE=(CYL,(1,1),RLSE),
DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
Error analysis
DIAGNOSE ALIAS looks for several types of discrepancies, for which fixes are
generally created, including:
User catalogs that are connected in one master catalog, but not in the other
Alias entries in one master catalog that are not in the other (under the rules of
the PEER and NONPEER keywords)
Aliases that exist, but do not have any data sets cataloged under them in the
related user catalog; these are considered empty aliases
Inconsistent aliases, where an alias related to a user catalog is defined in one
master catalog, but the same alias is defined in the other master catalog and
related to a different user catalog
User catalogs that have no aliases defined; effectively, these would be
unusable user catalogs, since it is not possible to direct cataloging of data
sets to them without an alias (this assumes you are not using
STEPCAT/JOBCAT statements, for which support is being dropped, and
98
should not be used). This situation is not considered an error, so a fix is not
created, but rather an information message is returned to alert you of this.
For more information on the fixes that are created for each of these situations,
refer to 7.2, Case study #2: BCS backup and forward recovery on page 116.
Note that all of the fixes in this case study were generated as comment
statements, and as such, are not directly executable as IDCAMS commands until
the /* at the beginning of each command is removed. Since the fix file is a
physical sequential file, the /* characters can be removed using TSO ISPF edit.
In many situations, this might be a laborious task, so the DIAGNOSE ALIAS
command has the DEFINE-ALIAS and DELETE-ALIAS keywords available. If
you know in advance which command is more appropriate for your environment,
the command processor builds those commands in the fix data set as
ready-to-execute.
99
The data set (or component) was deleted and has now re-appeared, in which
case, it needs to be physically deleted with an IDCAMS DELETE objectname
VVR/NVR command. Since the DIAGNOSE command has no way to know
which fix command is appropriate, it generates both in the fix data set and the
decision of which is correct is left to you. By default, both commands are
prefixed by a /*, to make them into comment statements. You have to either
edit the /* the desired fix command with TSO EDIT, or you can specify the
DEFINE-RECATALOG or DELETE-ENTRIES keyword on the DIAGNOSE
command if you know in advance which fix is appropriate.
100
In Figure 6-31, the DIAGNOSE VVDS-BCS command diagnoses all of our ITSO
sandbox volumes VVDSs (as indicated by COMPAREVVDS(SBOX*) keyword),
against all related BCSs. All errors identified by this DIAGNOSE will have fixes
created and stored in the FIXDATASET specified in the command. See 7.8,
Case study #8: Print and delete BCS/VVDS records on page 138, for actual
output from a sample execution of this command.
101
102
Finally, in Figure 6-34, all catalog entries in UCAT.CRPLUS3 that begin with
ITSO1 (regardless of anything else in their name) are moved to UCAT.CRPLUS5.
This type of process is most likely done when entries such as these are
cataloged incorrectly into the source BCS and need to be moved to the correct
BCS (and even more likely, actually has the alias of ITSO1). With the ENTRIES
keyword, the MERGECAT command does not make any alias changes.
But, if your system is running with MLA=1 (multi-level alias support of 1), you
would only have the high-level qualifier of YCJRES1 set up as an alias, and it will
not be re-associated to the target catalog. The reason is that you may well have
many other data sets under this same high-level qualifier, such as
YCJRES2.CRPLUS1, and you would make these data sets inaccessible if the
alias of YCJRES1 was re-associated. In fact, by running the example above, you
actually orphan the data sets with high-level qualifier YCJRES1.CRPLUS2, as
they are undoubtedly now located in a BCS that does not (and cannot) have an
alias of YCJRES1. This type of operation should only be done when you are
103
splitting catalogs apart, and most likely, getting ready for multi-level alias support.
Or you should do it when you are performing system consolidations or workload
balancing where you are moving whole categories of data sets over to user
catalogs that are accessible from different systems.
When you use the ENTRIES keyword, aliases are never re-associated, even if
you move all catalog records for an entire alias group.
104
105
106
You can see the complete output from the SUPERCLIP command in 7.6, Case
study #6: Changing a disk volser on page 131.
107
The variations in specification of each capability are quite wide. Refer to Mainstar
Catalog RecoveryPlus User Guide, document number 006-0202, for specific
details of all possible ways that the commands can be coded, as well as details of
exactly how each process works.
108
records for the clusters components (if they exist). If you delete a VVDS record
(a VVR or NVR), it does not delete an associated VTOC record (as an IDCAMS
DELETER VVR/NVR command does). Therefore, you should be careful when
executing this command, to ensure that you do not cause problems greater than
you are trying to solve. Figure 6-37 shows examples of how you may code this
command.
109
To patch a BCS record, but only if both VER and REP conditions are met:
ZAP BCS(UCAT.CRPLUS2) PATCH(COMPONENT(YCJRES2.CRPLUS.TESTK.K000954) VER(04,X'E3',37,X'24',58,X'F1')
REP(58,X'F2'))
To patch a VVDS record, but only if both VER and REP conditions are met:
ZAP VVDS(SBOX79) PATCH(COMPONENT(YCJRES2.CRPLUS.TESTK.K000954.DATA) VER(04,X'E9',1F,X'E3E2E3E1')
REP(1F,X'E3E2E3E4))
110
Chapter 7.
Case studies
This chapter presents several real-life examples of how ICF catalog structures
can break. The studies provide actual job listings that contain specific
command sequences that can be used to analyze each situation and to recover
from the errors.
The case studies in this chapter use commands and facilities from IDCAMS,
DFSMSdss, the IBM Integrated Catalog Forward Recovery Utility (ICFRU),
VVDSFIX (an unsupported ad hoc tool from IBM), and Mainstar Catalog
RecoveryPlus (CR+). The commands in the case studies include:
111
112
113
Example 7-2 illustrates an EXPORT backup of this BCS, run immediately after
the DIAGNOSE step in Example 7-1. Note that the EXPORT output indicates the
number of BCS records backed up is 4,722. Condition code 0 indicates that no
errors were encountered.
114
UCAT.VSBOX09
CAT02045I START OF DATA UNLOAD FOR UCAT.VSBOX09 ON 07 SEP 2001 (2001250) AT
20.27.15 VER 1.1.00
CAT02092I CALLING IDCAMS TO PERFORM EXAMINE
IDC01700I INDEXTEST BEGINS
IDC11724I DATA COMPONENT CA NOT KNOWN TO SEQUENCE SET
IDC21700I MINOR ERRORS FOUND BY INDEXTEST
CAT02050W IDCAMS (4) ISSUED RETURN CODE 4
CAT02046I RECORD SUMMARY FOR UCAT.VSBOX09
CLUSTER GDG E J
NONVSAM TRUENAME PATH UCAT ALIAS OTHER
TOTAL TOTAL BYTES
6,587
1 0 0
6,530
13,089
0
0
0
0
26,207
3,123,309
CAT02051I NUMBER OF SPANNED RECORDS ENCOUNTERED: 0
CAT02047I END OF DATA UNLOAD FOR UCAT.VSBOX09 ON 07 SEP 2001 AT 20.27.18
CAT02009I BACKUP FUNCTION COMPLETE. RETURN CODE 4
CAT01009I Catalog RecoveryPlus EXECUTION COMPLETE. HIGHEST RETURN CODE WAS 4
The difference is that EXPORT treats the BCS like a KSDS, using the index
component as its reference vehicle to the data records. If there is an error in the
index that is not detected by EXPORT, the result could be an incomplete or
incorrect backup. Catalog RecoveryPlus BACKUP treats the BCS like an
ESDS, bypassing all reference to the index as it backs up the data records in
physical sequence, For this type of BCS error, this logic provides greater
insurance that all records are backed up.
One final detail should be clarified in the output report in Example 7-3. Note that
it indicates a return code 4 from the internally-issued IDCAMS EXAMINE. Recall
that the explicitly-issued EXAMINE, in the Example 7-2 output, contained the
keyword DATATEST, which causes EXAMINE to actually run both an
INDEXTEST and a DATATEST, and it returned a condition code of 8. By default,
the CR+ BACKUP command in Example 7-3 internally issues an EXAMINE
command, with only the keyword INDEXTEST. As you can see from the output in
Example 7-2, the INDEXTEST logic only considered the error to be minor. The
DATATEST logic considered the error to be major. Apparently, this results in a
return code of 4 from INDEXTEST and a return code of 8 from DATATEST, and
only the highest return code is passed back.
Note: This case study does not imply that IDCAMS EXPORT is likely to
produce a bad BCS backup and Catalog RecoveryPlus BACKUP always
produces a good one. In other circumstances, it could happen that CR+
BACKUP has problems and EXPORT does not. Instead, this case study
illustrates the importance of frequent and regular diagnostics on your entire
ICF catalog environment, and then carefully checking the output listings when
there is any indication of problem. It also points out the benefit of using two
different catalog backup methods, increasing your chances that your backup
will be valid when the all-important time comes to restore and recover it.
115
116
OTHER
0
TOTAL
7,838
TOTAL BYTES
1,011,303
CAT02047I
117
Example 7-5 shows the complete RECOVER BCS job, with a RECOVER
command. This command indicates the BCS that is to be restored, where the
backup copy is located, and that we want to perform a forward recovery using
SMF data that is included on the SMFINDD JCL statement.
As the processing begins, the defaults in effect tell RECOVER that alias records
from the backup file are to be applied to the current system master catalog and
that all SMF records, from the exact time of backup to the time of this forward
recovery, are to be applied to the backup records. The PRINT options message
indicates that we do not want a detailed listing of all restored records. If you want
to change this, there is a PRINT keyword on the RECOVER command. See
6.5.8, PRINTing BCS records during a RECOVER on page 93, for details of
what the PRINT keyword shows you.
118
The RECOVER output listing is essentially a process log of all steps that the
command performs, including:
CHECK BCS STATUS: In this process, RECOVER determines if a BCS of the
name UCAT.CRPLUS2 is connected to the master catalog and physically
exists on the system. If one is found, a DELETE (with RECOVERY) and
DEFINE USERCATALOG command is submitted under the covers to
IDCAMS, so that the BCS into which the backup records is written is a brand
new, empty BCS (see 6.5.3, Explicit/implicit DEFINE of the BCS or VVDS to
restore on page 87, if you want to perform your own DELETE/DEFINE
command in preparation for RECOVER).
LOCK BCS: An IDCAMS ALTER command is issued, for the BCS named
UCAT.CRPLUS2, with the keyword LOCK specified. This makes the BCS
119
120
4. You should run a CR+ DIAGNOSE ALIAS command to ensure that all aliases
related to this newly restored user catalog are consistent across all system
master catalogs. Case study #3: Synchronizing aliases on page 121 shows
you how to code this command and how to interpret the output and fix file
created with this command. If we ran the forward recovery on system SC63,
we would have to run the DIAGNOSE ALIAS command twice, the first time
specifying SC63 and SC64 as our two master catalogs, and the second time
specifying SC63 and SG65 as our two master catalogs. Presumably, you
would run this in NONPEER mode.
If all of the steps in this case study were fully tested and practiced on a regular
basis, the whole process should not take more than a few minutes. If it was not
tested, and you do not have good procedures, for example, in collecting the
required SMF data, it could be a long and painful process. To accomplish this
testing, the RECOVER command illustrated in this case study could be run at
any time with the SIMULATE keyword.
121
Refer to 6.6.1, DIAGNOSE ALIAS command on page 97, for specific details of
what this command is used for and how it works.
In Example 7-7, the output report from DIAGNOSE ALIAS first provides statistics
from each master catalog, showing the total number of records, the number of
aliases, and the number of connected user catalogs.
122
CAT11223I
CAT11223I
CAT11223I
CAT11223I
CAT11223I
MCAT.SANDBOX.R10.VSBOX11
MCAT.SANDBOX.R9.VSBOX11
MCAT.SANDBOX.VSBOX11
MCAT.SBOXALT.SBOX02
SYS1.VOLCAT.VGENERAL
It also lists any user catalogs that do not have any aliases related to them.
Effectively, these would be unusable user catalogs, since it is not possible to
direct cataloging of data sets to them without an alias. This is not considered to
be an error, so a fix is not created for this situation, but rather an information
message to alert you.
Next, the command processor begins master catalog comparison. For each error
situation identified, a fix is created and stored in the fix data set, and a
corresponding reference number is given, so that you can correlate each error
message to its fix. Example 7-8 shows the fixes that were created as a result of
this command.
Immediately after the BEGINNING... message, note that the output report
comments that each master catalog is found to be connected as a user catalog in
the other. This cross-connection of master catalogs is a common practice and
enables you to perform maintenance on a master catalog from the other system,
where you then treat the master catalog as if it was a user catalog.
123
*/
*/
124
Fix #4 is more complicated. In that instance, it was found that the alias ICSF was
found in each master catalog. But in one master, it was related to the user
catalog UCAT.VSBOX09. In the other master, it was related to the user catalog
UCAT.VSBOX01. This is considered to be an error situation, but since there is no
way for the DEFINE ALIAS command processor to know which is correct, it
builds two sets of commands that you can choose from, once you determine
which fix is correct for your situation.
Finally, note that all the fixes in Example 7-8 were generated as comment
statements, and as such, are not directly executable as IDCAMS commands until
the /* at the beginning of each command is removed. Since the fix file is a
physical sequential file, that can be done with TSO ISPF edit. In many situations,
this might be a laborious task, so the DIAGNOSE ALIAS command has the
keywords DEFINE-ALIAS and DELETE-ALIAS. If you know in advance which
command is more appropriate for your environment, the command processor will
build those commands as ready to execute.
125
JOB10237
JOB10237
JOB10237
JOB10237
JOB10237
CLOCK
1.9
126
The output from the VVDS forward recovery can be found in the listing report in
Example 7-11. After first sorting the SMF records, RECOVER then deletes and
defines the original VVDS, then writes the new, updated records into the new
VVDS. Notice that it also identified one or more VVR/NVR records that
back-pointed to three BCSs whose names were not in the VVCR record, so
these BCS names were added.
127
TOTAL BYTES
374,385
128
129
130
TOTAL BYTES
35,090
131
132
** ON OLDVOLSER **
F1 DSCB NAME
SYS1.VVDS.VSBOX36
YCJRES1.BCSNEW01
YCJRES1.BCSNEW02
SBOX36
YCJRES1.BCSNEW03
SBOX36
YCJRES1.BCSNEW04
SBOX36
YCJRES1.BCSNEW03
YCJRES1.BCSNEW04
... a hundred (or so) additional data set names removed from the listing
UCAT.CRPLUS2
YCJRES2.CRPLUS.VVDSTST0
SBOX36
YCJRES2.CRPLUS.VVDSTST0
SBOX36
YCJRES2.CRPLUS.VVDSTST1
SBOX36
YCJRES2.CRPLUS.VVDSTST1
SBOX36
YCJRES2.CRPLUS.VVDSTST0.DATA
YCJRES2.CRPLUS.VVDSTST0.INDEX
YCJRES2.CRPLUS.VVDSTST1.DATA
YCJRES2.CRPLUS.VVDSTST1.INDEX
... plus several additional data set names removed from the listing
UCAT.CRPLUS5
UCAT.CRPLUS5
SBOX36
UCAT.CRPLUS5
SBOX36
UCAT.CRPLUS5
UCAT.CRPLUS5.CATINDEX
133
As the example shows, the job began at 18.40.49 and ended at 18.53.25,
including 7,255 I/Os. Most of the time and I/O cost was used updating the volume
cell in the associated catalog record for each of the 154 data sets. SUPERCLIP,
as part of its processing, does a Catalog Search Interface (CSI) LOCATE on
each of the 154 data sets on the volume to identify the BCSs in which each data
set is cataloged. It then updates the volser pointer in those catalog records, as
they point to volser SBOX36, and changes it to CRPL36. Also for the BCS that
resides on the volume (UCAT.CRPLUS5), its connector record in the master
catalog must be updated, as that record indicates SBOX36, to be CRPL36.
Prudence dictates that you should consider running the SUPERCLIP command
in advance, in SIMULATE mode, enabling you to see for yourself that the
command is going to do exactly what you expect. The output from this execution
is exactly the same as without SIMULATE, but does not perform any of the actual
change operation that a real SUPERCLIP command does.
If your SUPERCLIP window is very short, there is a possible way that you can
use the SIMULATE facility to complete the long-running tasks of SUPERCLIP
ahead of time, and then perform the actual clip process in a very short time. To
do this, you first run SUPERCLIP with SIMULATE, as shown in Example 7-16.
This process does the LOCATE to the BCS on all data sets on the volume,
storing the information in the journal file. You then replace the word SIMULATE
on the command with the word RESTART. At the beginning of your clip window,
134
you re-run the SUPERCLIP command. SUPERCLIP uses the journal data set
records to drive the processing to actually perform the volser change,
completing this in a very short time. For this to work correctly, though, it is
imperative that there are no allocations.
10/02/01
PAGE
135
136
CAT12000I **************************************
CAT12000I
>>> JOURNAL FILE HAS BEEN POPULATED
CAT12000I
>>> MERGECAT IS NOW RESTARTABLE
CAT12042I
>>>
4,367 CATALOG ENTRIES WILL BE COPIED TO THE OUTPUT CAT12000I
**************************************
CAT12000I * COPY CATALOG ENTRIES
*
CAT12000I **************************************
CAT12009I
PROCESS STARTED FOR SYS1.AADFMAC1
CAT12011I
PROCESS ENDED FOR SYS1.AADFMAC1
CAT12009I
PROCESS STARTED FOR SYS1.AADRLIB
CAT12011I
PROCESS ENDED FOR SYS1.AADRLIB
... plus several thousand data set names removed from the listing
CAT12000I
>>> SELECTED ENTRIES HAVE BEEN COPIED
CAT12000I
CAT12000I **************************************
CAT12000I * COPY SYS1.VVDS.VXXXXXX ENTRIES
*
CAT12000I **************************************
CAT12035I
SYS1.VVDS.VHG6601
CAT12035I
SYS1.VVDS.VHG6605
... and VVDS names continue for 19 more lines that are removed
CAT12000I >>> MERGECAT
ENDED SUCCESSFULLY
CAT01009I Catalog RecoveryPlus EXECUTION COMPLETE. HIGHEST RETURN CODE WAS 0
Note: You may wonder why you should care which master catalog is the
official one, which is the alternate master catalog, and what is the
importance of these BCS back pointers? The simple answer is, in normal
day-to-day system processing (whether it is for ordinary data sets or critical
system data sets), the BCS to which the back-pointer points is largely
irrelevant, because it is not used or checked during data set LOCATE or
OPEN/CLOSE processing. However, if you attempt to delete the data set, the
BCS back-pointer in the data sets VVR/NVR is checked to ensure that the
BCS through which you are attempting DELETE is the same one as named in
the BCS back-pointer. If it is not, the DELETE operation fails.
For that reason, when you use IDCAMS REPRO NOMERGECAT to clone a
master catalog, and it updates the BCS back-pointers, that makes the target
master catalog your official master catalog from which you now need to IPL.
When you use CR+ MERGECAT COPYONLY, it does not update the BCS
back-pointers. That leaves your original source master catalog as your official
master catalog, and the target is your alternate master. Either way, it works
OK. You just need to know the differences so that you do not accidentally fall
into a trap of using the wrong catalog as your master catalog.
137
138
TIME: 18:20:54
D9D7D3E4
D7D3E4E2
D9C5E2F2
00000100
00080000
01800000
00000010
00000000
00000000
1000000C
02000100
10/02/01
PAGE 1
E2F44BE5
F44BE5E5
4BC3D9D7
00018000
00000000
00000000
00000000
00000000
00000000
00014000
00000000
E5C4E2E3
C4E2E3E2
D3E4E2F4
00000000
00000000
00000000
F0000000
01000000
00000000
0F000000
00BFFF
*...Z......YCJRES2.CRPLUS4.VVDST
*ST1.DATA..YCJRES2.CRPLUS4.VVDSTS
*T1..UCAT.CRPLUS2.YCJRES2.CRPLUS4
*.VVDSTST1.... ..................
*.{....0.........................
*................................
*.-..-.......................0...
*................................
*...................{............
*................{......... .....
*...............................
E2F24040
00E5A200
00000000
00000000
40404065
00010000
00000000
00000000
*1SBOX36......._...IBMOSVS2
.
*........{................V......
*................................
*................................
*.................
0000C9C2
00128800
00000000
00000000
00
D4D6E2E5
00010000
00000000
00000000
139
Example 7-20 illustrates how this problem of the duplicate VVR can be solved
with VVDSFIX. The command (CMD) being used is DELVVR, which means
delete VVR. The specific VVR is identified by component name
YCJRES2.CRPLUS4.VVDSTST1.DATA, and it is the same one identified
previously in the DIAGNOSE output. The operand value CO specified within the
command indicates that we want to delete a COmponent. The last operand,
UCAT.CRPLUS2, and is crucial to the success of the command for this particular
problem (see the description for Example 7-22 on page 141 for more
information). When the BCS name is not specified, the DELVVR command
deletes every VVR within the VVDS that has the specified name, which is not
what we want to do here. By specifying the BCS name, the DELVVR command
can match up the BCS cluster record with the correct VVR and then delete only
the invalid VVR.
140
141
*******************************************************************************
VVDS DATA FOR DSN: YCJRES2.CRPLUS4.VVDSTST1.DATA
RBA FOUND: 000096DE
TYPE FOUND: Z
*******************************************************************************
00000000
015F0068 E9000000 00001EE8 C3D1D9C5
*.?..Z......YCJRE*
00000010
E2F24BC3 D9D7D3E4 E2F44BE5 E5C4E2E3
*S2.CRPLUS4.VVDST*
00000020
E2E3F14B C4C1E3C1 0019E8C3 D1D9C5E2
*ST1.DATA..YCJRES*
00000030
F24BC3D9 D7D3E4E2 F44BE5E5 C4E2E3E2
*2.CRPLUS4.VVDSTS*
00000040
E3F1000C E4C3C1E3 4BC3D9D7 D3E4E2F2
*T1..UCAT.CRPLUS2*
00000050
19E8C3D1 D9C5E2F2 4BC3D9D7 D3E4E2F4
*.YCJRES2.CRPLUS4*
00000060
4BE5E5C4 E2E3E2E3 F1000055 21402000
*.VVDSTST1.... ..*
00000070
00003000 00000100 00018000 00C00000
*................*
00000080
00C00000 0000F000 00FFFFFF FFFFFFFF
*......0.........*
00000090
FF000000 00080000 00000000 00000000
*................*
000000A0
00000000 00000000 00000000 00000000
*................*
000000B0
00010000 01800000 00000000 00000000
*................*
000000C0
62608000 60000000 00000800 00000C00
*.-..-...........*
000000D0
00000000 00000010 00000000 F0000000
*............0...*
000000E0
00000000 00000000 00080000 00000000
*................*
000000F0
00B686A2 27D36B9E A6000000 01000000
*..FS.L,.W.......*
00000100
64000000 00000000 00000000 00000000
*................*
00000110
000000A0 00000000 00000000 00000000
*................*
00000120
03003E23 80010000 10000000 C0000000
*................*
00000130
C0000000 1000000C 00010000 0F000000
*................*
00000140
00000000 00000000 00001400 01000E00
*................*
00000150
03000E00 03000100 00000000 00BFFF
*............... *
CAT08000I ZAP FUNCTION COMPLETE. RETURN CODE 0
CAT01009I Catalog RecoveryPlus EXECUTION COMPLETE. HIGHEST RETURN CODE WAS 0
And finally, Example 7-23 illustrates that it is also possible to delete a specific
BCS record, with the VVDSFIX DELBCSR command. In this example, the key of
the record to be deleted is specified (in this case, a cluster sphere name), and
the BCS name from which the record is to be deleted. In the output report, we
are told that a C-type (Cluster) record is deleted, and a T-type (Truename) record
for the accompanying data component is deleted.
142
A BCS record can also be deleted with the Catalog RecoveryPlus ZAP BCS
DELETE command, by specifying the key of the record to be deleted (a cluster
sphere name), and the BCS name from which the record is to be deleted. Only
the record with that key is deleted.
143
TOVVDS mask of SBOX** selects all volsers that begin with the value SBOX. For
all errors identified, an IDCAMS fix command is created and stored in the flat
file identified by the FIXDATASET keyword (for this run, there were no errors, so
no fixes were stored).
The command requires only two small changes to convert it into one that
diagnoses the entire environment:
COMPAREBCS(**)
ALLRELATED (instead of the current TOVVDS keyword)
With these changes, this DIAGNOSE command selects every BCS in your
environment and compares outward to every related VVDS.
How much does this cost? For Example 7-25, the total run time was less than
two elapsed minutes. This is certainly on the low side, because it was the ITSO
test environment, with fairly small BCSs and not a high number of data sets on
each volume.
144
SBOX07
SBOX17
SBOX24
SBOX34
SBOX41
SBOX51
SBOX58
SBOX68
SBOX75
SBOX85
SBOX92
UCAT.CRPLUS2
VOLSER
SBOX01
SBOX02
SBOX03
SBOX04
SBOX11
SBOX20
SBOX26
SBOX27
SBOX36
SBOX38
SBOX75
SBOX77
SBOX79
SBOX81
SBOX94
SBOX01
SBOX02
SBOX20
SBOX36
SBOX38
SBOX75
SBOX77
SBOX79
SBOX81
VVDS IN
BCS
YES
YES
NO
NO
NO
YES
YES
YES
NO
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
BCS IN
VVDS
YES
YES
NO
NO
NO
YES
YES
YES
NO
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
DATASETS FIX
ON VOLUME CREATED
YES
N/A
YES
N/A
YES
N/A
YES
N/A
YES
N/A
YES
N/A
YES
N/A
YES
N/A
YES
N/A
YES
N/A
YES
N/A
YES
N/A
YES
N/A
YES
N/A
YES
N/A
YES
YES
YES
YES
YES
YES
YES
YES
YES
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
145
SBOX94
YES
YES
YES
N/A
UCAT.CRPLUS3
SBOX01
SBOX02
SBOX03
SBOX04
SBOX20
SBOX38
SBOX75
SBOX77
SBOX79
SBOX81
YES
NO
YES
NO
NO
NO
NO
NO
NO
NO
YES
NO
YES
NO
NO
NO
NO
NO
NO
NO
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
UCAT.CRPLUS4
SBOX01
SBOX02
SBOX20
SBOX38
SBOX75
YES
NO
NO
NO
NO
YES
NO
NO
NO
NO
YES
YES
YES
YES
YES
N/A
N/A
N/A
N/A
N/A
146
147
148
OF VVDS SYS1.VVDS.VSBOX02
ENCOUNTERED 816
ENCOUNTERED 6
ENCOUNTERED 0
ENCOUNTERED 0
ENCOUNTERED 0
ENCOUNTERED 0
149
150
Related publications
The publications listed in this section are considered particularly suitable for a
more detailed discussion of the topics covered in this redbook.
IBM Redbooks
For information on ordering these publications, see How to get IBM Redbooks
on page 152.
DFSMS/MVS Recovery Management, GG24-3922
Enhanced Catalog Sharing and Management, SG24-5594
IBM Magstar Tape Products Family: A Practical Guide, SG24-4632
Other resources
These publications are also relevant as further information sources:
MVS System Commands, SA22-7629
MVS System Management Facilities (SMF), SA22-7630
DFSMS Access Method Services for Catalogs, SC26-7394
DFSMSrmm Implementation and Customization Guide, SC26-7405
DFSMS Managing Catalogs, SC26-7409
DFSMS Using Data Sets, SC26-7410
DFSMShsm Storage Administration Guide, SC35-0421
DFSMShsm Storage Administration Reference, SC35-0422
DFSMSdss Storage Administration Guide, SC35-0423
DFSMS OAM Planning, Installation and Storage Adminstration Guide for
Tape Libraries, SC35-0427
Integrated Catalog Forward Recovery Utility Program Description/Operations
Manual, SH20-6952
Mainstar Catalog RecoveryPlus User Guide, document number 006-0202
151
152
Special notices
References in this publication to IBM products, programs or services do not imply
that IBM intends to make these available in all countries in which IBM operates.
Any reference to an IBM product, program, or service is not intended to state or
imply that only IBM's product, program, or service may be used. Any functionally
equivalent program that does not infringe any of IBM's intellectual property rights
may be used instead of the IBM product, program or service.
Information in this book was developed in conjunction with use of the equipment
specified, and is limited in application to those specific hardware and software
products and levels.
IBM may have patents or pending patent applications covering subject matter in
this document. The furnishing of this document does not give you any license to
these patents. You can send license inquiries, in writing, to the IBM Director of
Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785.
Licensees of this program who wish to have information about it for the purpose
of enabling: (i) the exchange of information between independently created
programs and other programs (including this one) and (ii) the mutual use of the
information which has been exchanged, should contact IBM Corporation, Dept.
600A, Mail Drop 1329, Somers, NY 10589 USA.
Such information may be available, subject to appropriate terms and conditions,
including in some cases, payment of a fee.
The information contained in this document has not been submitted to any formal
IBM test and is distributed AS IS. The use of this information or the
implementation of any of these techniques is a customer responsibility and
depends on the customer's ability to evaluate and integrate them into the
customer's operational environment. While each item may have been reviewed
by IBM for accuracy in a specific situation, there is no guarantee that the same or
similar results will be obtained elsewhere. Customers attempting to adapt these
techniques to their own environments do so at their own risk.
Any pointers in this publication to external Web sites are provided for
convenience only and do not in any manner serve as an endorsement of these
Web sites.
153
154
Glossary
This glossary contains a list of terms and
abbreviations used within this redbook.
A
access method control block (ACB) A
control block that links an application program
to VSAM or VTAM.
access method services (AMS) A
multifunction service program that manages
both VSAM and non-VSAM data sets and ICF
catalogs. It defines data sets and allocates
space for VSAM data sets and ICF catalogs. It
converts indexed-sequential (ISAM) data sets
to key-sequenced data sets, modifies data set
attributes in the catalog, reorganizes data sets,
facilitates data portability among operating
systems, creates backup copies of data sets
and indexes, helps make inaccessible data
sets accessible, lists the records of data sets
and catalogs, defines, and builds alternate
indexes.
155
C
catalog A data set that contains extensive
information required to locate other data sets,
to allocate and deallocate storage space, to
verify the access authority of a program or
operator, and to accumulate data set usage
statistics. See also master catalog and user
catalog.
catalog address space (CAS) A separate
address space in virtual storage that contains
catalog management modules and control
blocks.
catalog connector A catalog entry, called
either a user catalog entry or a catalog
connector entry, in the master catalog that
points to a user catalog. Contains information
on aliases for the user catalog.
156
Glossary
157
158
K
key One or more characters within an item of
data that are used to identify it or control its
use. As used in this publication, one or more
consecutive characters taken from a data
record, used to identify the record and
establish its order with respect to other
records.
key sequence The collating sequence of
data records, determined by the value of the
key field in each of the data records. It can be
the same as, or different from, the entry
sequence of the records.
key-sequenced data set (KSDS) A VSAM
data set whose records are loaded in key
sequence and controlled by and index.
Records are retrieved and stored by keyed
access or by addressed access, and new
records are inserted in the data set in key
sequence because of free space allocated in
the data set. Relative byte addresses of
records can change because of control
interval or control area splits.
Glossary
159
160
U
user catalog An optional catalog used in the
same way as the master catalog and pointed
by the master catalog. It lessens the
contention for the master catalog and
facilitates volume portability.
user catalog connector See catalog
connector.
V
volume table of contents (VTOC) A table
on a direct access volume that describes each
data set on the volume.
virtual storage access method (VSAM) An
access method for indexed or sequential
processing of fixed and variable-length
records on direct access devices. The records
in a VSAM data set or file can be organized in
logical sequence by a key field (key
sequence), in the physical sequence in which
they are written on the data set or file
(entry-sequence), or by relative-record
number.
VSAM record level sharing See record level
sharing.
VSAM volume control record (VVCR) The
first logical record in the VVDS that contains
information to manage DASD space and the
BCS back pointers.
VSAM volume data set (VVDS) A data set
that describes the characteristics of VSAM
and system-managed data sets residing on a
given DASD volume; part of an ICF catalog.
VSAM volume record (VVR)
logical record within a VVDS.
A VSAM
Glossary
161
162
Index
Numerics
3494 Automated Tape Library 18
3494 Virtual Tape Server 18
3495 Automated Tape Library 18
A
Access Method Services 3
alias 4, 6, 52, 88
ALIAS keyword 53
allocation process 2
alternate index 4
alternate master catalog 18, 106, 135
AMS
See Access Method Services
ATL
See Automated Tape Library
Automated Tape Library 18
B
backup
frequency 12, 16
integrity 14
number of copies 16
portable copy 62
recent version 51
strategy 12
techniques 12
utilities 1213
VOLCAT 18
VVDS 19
basic catalog structure 2
BCS
See basic catalog structure
BCS backup and forward recovery 116
blocksize 2
buffers 70
C
CA
See control area
CAS
See Catalog Address Space
163
recovery simulation 94
Submit Backup panel 72
Submit Recover BCS panel 73
Submit Recovery VVDS panel 74
SUPERCLIP command 106
ZAP command 107
ZAP facility 51
CDSC
See catalog data space cache
changing a disk volser 131
CI
See control interval
CISIZE attribute 53
cluster 4
compaction 8
COMPAREDD keyword 30
COMPAREDS keyword 30
connector record 5, 18, 52
content errors 26
control area 24
control blocks 6
control interval 24
coupling facilities 8
CR+ BACKUP BCS command
alias processing 85
backing up all catalogs 77
different frequencies 78
EXCLUDEBCS keyword 77
explicitly-specified BCSs 76
OUTFILE keyword 76
processing 85
CR+ BACKUP command
ACCEPTDIAGNOSE keyword 80
ACCEPTEXAMINE keyword 80
DIAGNOSEBCS keyword 81
DIAGNOSEVVDS keyword 81
duplex BCS 84
duplex VVDS 84
EXAMINE keyword 80
multiple backup copies 82
NORESERVE keyword 81
OUTDATASET keyword 76
OUTFILE keyword 76
RESERVE keyword 81
specifying BCSs 76
CR+ BACKUP VVDS command
EXCLUDEVVDS keyword 79
OUTFILE keyword 78
specifying VVDSs 78
164
D
daily backup 12
data component 4, 25
data component name 36
data control areas 25
data control intervals 25
data set description 5
data set naming conventions 6
data set organization 2
DATATEST keyword 25
delete VVDS entry 32
dependent records 33, 36
device type 8
DFSMSdss
logical dump 15
logical restore 53
stand-alone 18
stand-alone restore 55
DFSMShsm
activity logs 16
availability management 16
BACKDS command 16
backup 51
recovery 54
DFSORT 58
DIAGNOSE BCS compare 31
DIAGNOSE of a BCS 27
DIAGNOSE of a VVDS 29
DIAGNOSE VVDS compare 34
diagnosis utilities 23
diagnostic commands 14
disaster recovery plan 70
down time 50
DSCB 29
duplicate key 77
duplicate records 25
duplicate VVR 29, 37
duplicated records 41
E
ECS
See Enhanced Catalog Sharing
Enhanced Catalog Sharing 39
enlarging VVDS 129
F
forward recover 86
forward recovery 19, 52, 57, 62, 87
FREESPACE attribute 53
G
GDG
See generation data group
generation data group 4
GLOBAL ENQUEUE 14
Global Resource Serialization 14
GRS
See Global Resource Serialization
guaranteed space attribute 54
H
high level qualifier 4
high-used relative byte address 19
horizontal pointers 25
HURBA
See high-used relative byte address
I
ICF
See Integrated Catalog Facility
ICFRRAP program 62, 65
ICFRRSV program 62, 65
ICFRU
See Integrated Catalog Forward Recovery Utility
ICKDSF utility 107
IDCAMS commands 3, 8
ALTER LOCK 52, 88
ALTER UNLOCK 52, 66
DEFINE CLUSTER 32, 88
DEFINE RECATALOG 29
DEFINE UCAT 52
DEFINE USERCATALOG 18, 54, 88
DELETE 32
DELETE NOSCRATCH 29
Index
165
DELETE RECOVERY 87
DELETE TRUENAME 29
DELETE UCAT RECOVERY 52
DIAGNOSE 14, 26, 30, 58, 113
DIAGNOSE ICFCATALOG 28, 31, 81
DIAGNOSE VVDS 29, 81
EXAMINE 14, 25, 113
EXAMINE INDEXTEST 67, 80
EXPORT 13, 62
IMPORT 5253, 62
IMPORT CONNECT 18
LISTCAT 32
LISTCAT ALL 66
LISTCAT NONVSAM 58
REPRO MERGECAT 51, 54
VERIFY 25, 113
IGG.CATLOCK profile 52, 88
INDATASET keyword 31
index component 4, 25
index sequence set 25
index set 25
INDEXTEST keyword 25, 80
INFILE keyword 31
in-storage catalog cache 7
in-storage control blocks 26, 70
in-storage pointers 50
Integrated Catalog Facility 2
Integrated Catalog Forward Recovery Utility 62
record analysis and processing 62
record selection and validation 62
integrity check 24
integrity exposures 7
INTOEMPTY keyword 53
ISC
See in-storage catalog cache
ITSO test environment 8
L
library ID 8
library manager 8
library name 8
LOADxx PARMLIB member 5, 8
lock attribute 15, 52
lockout situations 43
logical description 2
M
management class 16
166
master catalog 3, 5, 18
media type 8
messages
ADR454I 15
CAT12000I 105
IDC0594I 13
IDC11362I 32
IDC11367I 35
IDC11374I 32
IDC11375I 35
IDC11700I 25
IDC21701I 25
IDC3009I 42, 88
IEC143I 22
IEF237I 22
prefixes 22
multi-volume data set 5
MVS allocation routines 22
MVS cross memory services 6
MVS MODIFY CATALOG command 26, 42
ABEND 43
ALLOCATED 38
CLOSE 43
END 43
LIST 43
RESTART 44
UNALLOCATE 43
VCLOSE 43
VUNALLOCATE 43
MVS MODIFY command 7
N
non-VSAM data set 4
non-VSAM volume record 3
NVR
See non-VSAM volume record
O
orphan NVR 30
orphan VVR 30
out-of-sequence records 77
P
path 4
physical attributes 2
physical cartridge 18
physical description 2
point-of-failure 12, 56
post recovery actions 66
post-recovery updates 12
preventive maintenance 143
primary space allocation 53
print and delete BCD/VVDS records 138
problem resolution 24
R
record caching 7
record length 2
record type 4
recording technique 8
records out of sequence 25
recover 12
recovery
considerations 55
master catalog 55
process 50
strategy 50
tape volume catalog 56
techniques 51
user catalog 56
utilities 52
VVDS 57
Redbooks Web site 152
Contact us 15
repair 50
repair actions 36
restore 12, 50, 52, 86
restored copy 51
return codes 22
S
salvage 50
sequence set 25
shared device 38
SHAREOPTIONS keyword 37
sharing across systems 38
sharing problems 40
sharing systems 39
sharing within a system 38
SMF records 17, 50, 58, 62, 90
type 36 51
type 60 60
type 61 59
SMFPRMxx PARMLIB member 58
SMS
T
tape configuration database 8
Tape Library Dataserver 8
tape library record 78
tape management system 8
tape volume catalog 7
general VOLCAT 8
specific VOLCAT 8
tape volume catalogs 4
tape volume record 78
TCDB
See tape configuration database
terminology 2
truename 4
U
user catalog 3
user catalog connections 97
user catalog connector 4
V
vertical pointers 25
virtual look-aside facility 7
virtual storage 6
Virtual Tape Server
VLF
Index
167
168
(0.2spine)
0.17<->0.473
90<->249 pages
Back cover
ICF catalogs are essential system data sets. Even with todays
high availability storage subsystems and processors, there are
still situations in which you need to recover your catalogs. You
should keep your catalogs healthy and be prepared for a recovery
situation. Also, you need to be sure that your recovery procedures
do not have a big impact on your production environment. To
minimize the recovery process, you should have a clear backup
and recovery strategy, and the proper utilities.
IBM Integrated Catalog Forward Recovery Utility (ICFRU) and
Mainstar Catalog RecoveryPlus are two of the available tools you
can use to recover your catalogs. ICFRU is a basic tool to help you
in a forward recovery situation. It does not offer a wide range of
features, but is useful for catalog recovery. Mainstar's Catalog
RecoveryPlus offers a set of features to help you in your ICF
catalog environment maintenance.
This IBM Redbook provides information and practical examples on
how to use each of these products in a catalog recovery situation.
It also provides useful recommendations for storage
administrators in implementing a catalog backup and recovery
plan. It is not intended to compare the two products but to show
how each of them work. This redbook also provides a variety of
practical tests to help you with the different error scenarios you
may find in your daily production activities.
INTERNATIONAL
TECHNICAL
SUPPORT
ORGANIZATION
BUILDING TECHNICAL
INFORMATION BASED ON
PRACTICAL EXPERIENCE
IBM Redbooks are developed by
the IBM International Technical
Support Organization. Experts
from IBM, Customers and
Partners from around the world
create timely technical
information based on realistic
scenarios. Specific
recommendations are provided
to help you implement IT
solutions more effectively in
your environment.
ISBN 0738423467