IMS Base (TSR to CA)
IMS Timestamp Recovery using Change Accums to a Recovery Point
With TR, it is necessary to create an RP that is consistent for the databases being recovered. An RP is a
period of time when the database is not allocated. Generally, the
ALLOC records in the RECON data set can be analyzed to determine
periods of time when the database is not allocated. An RP can be
created for a database by taking it offline with a /DBR command or the
equivalent UPDATE DB STOP(ACCESS) command or with a /DBD command or the equivalent UPDATE DB
STOP(UPDATES) command. In IMS 11, the DB QUIESCE
function provided the ability to create an RP without taking
the database data sets offline. This function is provided by the
UPDATE DB START(QUIESCE) command, and it allows transaction activity to
be paused at commit points. In the RECON data set, these DB QUIESCE
RPs are indicated with ALLOC records that have been
updated with a DEALLOC time and the QUIESCE flag turned on. A new
ALLOC record will be written when the database data set is updated
again after the DB QUIESCE RP.
For this second TR solution, we use DB QUIESCE with the
default NOHOLD option to pause transaction activity at commit points.
This creates an RP, and by default, the OLDS are switched and archived
as part of the DB QUIESCE command. GENJCL.CA is used to create the
jobs that will create the CA data sets. The CA data sets have changes
on them up until the RP created by the DB
QUIESCE command. The RECON data set is backed up and transmitted to the remote site with the
image copies and CA data sets.
In Figure 3, the steps to run GENJCL to create the CA data sets and the step to back up the RECON data set are shown.
Figure 3. Create Change Accum to up to recovery point (primary site activity)
At the remote site, the backup copy of the RECON data set must be conditioned before it can be used for recovery. When the backup RECON was created, it showed a primary system that was up and running and healthy. The conditioning will change the RECON data set to reflect that a disaster has occurred and IMS was abnormally terminated.
The first conditioning step is to flag the primary image copies as
invalid. This is only necessary if dual image copies are being created
at the primary site and only the secondary image copy is being
transmitted to the remote site. It is common to use dual image
copies in this way. The command for this is CHANGE.IC DBD(dbname) DDN(ddname) INVALID.
The second step is to delete the IMS subsystems that were active at the
time the RECON was created. A LIST.SUBSYS DBRC command will show which
IMS subsystems were active, then a series of four commands are
required to delete each subsystem ID.
Listing 2. Commands to delete each subsystem ID
CHANGE.SUBSYS SSID(ssidname) ABNORMAL
CHANGE.SUBSYS SSID(ssidname) STARTRCV
CHANGE.SUBSYS SSID(ssidname) ENDRECOV
DELETE.SUBSYS SSID(ssidname)
|
By deleting the IMS subsystems records, it is no longer possible to emergency-restart the IMS systems at the remote site. For this solution, this is not a problem because the recoveries are to RPs created by clean image copies, and dynamic back-out is not required for any uncommitted updates.
The third conditioning step before IMS is cold-started is to close and
archive the open log data sets in the RECON data set. The OLDS data
sets are not transmitted to the remote site. However, at the time the
backup RECON was created, it would have showed an active OLDS data
set. To close and archive the data set, an empty OLDS data set must be
allocated, and the active OLDS in the RECON must be flagged for
archiving. The archive utility will not care that the OLDS is empty,
and it will archive it appropriately. As a result, the PRILOG, PRISLD,
and PRIOLD records in the RECON will change from having all zeros in
the stop times to having valid timestamps. The command to identify the
active OLDS for this is LIST.RECON.
After the OLDS is allocated, the command to notify the RECON that the
OLDS needs archiving is NOTIFY.PRILOG OLDS(oldsdd)
SSID(newssid) -STARTIME(start) … RUNTIME(start+1).
Prior to running the recovery jobs, the database data sets must be deleted and reallocated as empty data sets. Once this is done, the GENJCL.RECOV command can be issued to create the DBRC recovery JCL and the resulting jobs can be executed. The timestamp used with GENJCL.RECOV is timestamp of the last CA data set that contains the RP created by the DB QUIESCE command. These RECON conditioning steps are shown in Figure 4.
Figure 4. Manually Condition the RECON Data Set (Remote Site Activity)
Prior to running the recovery jobs, the database data sets must be
deleted and reallocated as empty data sets. Once this is done, the
GENJCL.RECOV command can be issued to create the DBRC recovery JCL and
the resulting jobs can be executed. The timestamp used with
GENJCL.RECOV is timestamp of the last CA data set that contains the RP
created by the DB QUIESCE command.
The two final steps are to delete the PRIOLD records and allocate the RDS data set. The OLDS and the RDS were not transmitted to the remote site. Finally, the IMS subsystems can be cold-started.






