Administrator's Guide


The Disaster Recovery Plan

The disaster recovery plan file contains the information required for recovery of a TSM server to the point in time represented by the last database backup operation that is completed before the PREPARE command is issued. The recovery information is organized into stanzas within the disaster recovery plan file. Each stanza in the recovery plan file has a unique name. These names are listed in Table 24.

The administrator can use an editor or a locally written procedure (for example, a modified version of the REXX EXEC ANRPLANX that is shipped with DRM) to break out the recovery plan file stanzas into multiple files.

Breaking Out a Disaster Recovery Plan File

You can use a REXX EXEC or an editor to break out the stanzas in the disaster recovery plan file into individual files. An example REXX EXEC ANRPLANX is shipped with DRM and is located in the ASAMPLIB data set. This REXX EXEC shows how you can write a local REXX EXEC to process your disaster recovery plan file.Figure 73 shows an example of the REXX EXEC that you can modify for your local installation.

Figure 73. Example of a REXX EXEC to Break Out a Disaster Recovery Plan File


/*REXX*/
/* Explode a recovery plan file into separate files (macros, JCL,     */
/* and volume history file).                                          */
/* Invoke with:                                                       */
/*    EXEC anrplanx recoveryplandatasetname outdsnprefix              */
 
arg RPDSN OUTDSNPREFIX .
STANZAS =,
  'RECOVERY.DRMODE 255',
  'RECOVERY.NMODE 255',
  'VOLUMES.REQUIRED 132',
  'DEVICES.REQUIRED 132',
  'CFGFILES.CREATE 80',
  'LOGDBVOL.CREATE 80',
  'LOGDBVOL.INSTALL 80',
  'RESTORE.DB 80',
  'START.SERVER 80',
  'COPYVOL.AVAIL 255',
  'COPYVOL.DESTR 255',
  'PRIMVOL.DESTR 255',
  'PRIMVOL.REPLACEC 80',
  'PRIMVOL.REPLACE 255',
  'STGPOOL.RESTORE 255',
  'INSTR.GENERAL 132',
  'INSTR.OFFSITE 132',
  'INSTR.INSTALL 132',
  'INSTR.DATABASE 132',
  'INSTR.STGPOOL 132',
  'VOLHIST.FILE 1024',
  'DEVCONF.FILE 1024',
  'SERVOPT.FILE 255'
 
'FREE FI(INDD)'
'ALLOC DA('RPDSN') F(INDD) SHR REUSE'
OUTDSN = '
do forever
   'EXECIO 1 DISKR INDD (STEM ALINE.'
   if RC = 0 then do
      parse var ALINE.1 WORD1 WORD2 .
      select
        when WORD1 = 'begin',
           & (wordpos(WORD2,STANZAS) > 0) then do
             if OUTDSNPREFIX <> '' then,
                OUTDSN = 'OUTDSNPREFIX'.'WORD2'
             else OUTDSN = WORD2
             LRECL = word(STANZAS,wordpos(WORD2,STANZAS)+1)
             'FREE FI(OUTDD)'
             'DELETE 'OUTDSN
             'ALLOC DA('OUTDSN') F(OUTDD) NEW REUSE RECFM(V) LRECL('LRECL')'
             say 'Creating file 'OUTDSN
             end
        when WORD1 = 'end',
           & (wordpos(WORD2,STANZAS) > 0) then do
             'EXECIO 0 DISKW OUTDD (FINIS'
             'FREE FI(OUTDD)'
             OUTDSN = '
             end
        when OUTDSN <> '' then do
             'EXECIO 1 DISKW OUTDD (STEM ALINE.'
             end
        otherwise nop
      end /* select */
      end /* do */
   else leave
 
end /* do */
 
'EXECIO 0 DISKR INDD (FINIS'
'EXECIO 0 DISKW OUTDD (FINIS'
'FREE FI(INDD OUTDD)'

Figure 74 shows an example of local modifications made to ANRPLANX. This modified version inserts JOB and STEPLIB cards into the JCL stanzas.

Figure 74. Example of a Locally Modified REXX EXEC


/*REXX*/
/* Explode a recovery plan file into separate files (macros, JCL,     */
/* and volume history file).                                          */
/* Invoke with:                                                       */
/*    exec planexpl.rex recoveryplandatasetname outdsnprefix          */
 
arg RPDSN OUTDSNPREFIX .
 
STANZAS =,
  'RECOVERY.DRMODE 255',
  'RECOVERY.NMODE 255',
  'VOLUMES.REQUIRED 132',
  'DEVICES.REQUIRED 132',
  'CFGFILES.CREATE 80',
  'LOGDBVOL.CREATE 80',
  'LOGDBVOL.INSTALL 80',
  'RESTORE.DB 80',
  'START.SERVER 80',
  'COPYVOL.AVAIL 255',
  'COPYVOL.DESTR 255',
  'PRIMVOL.DESTR 255',
  'PRIMVOL.REPLACEC 80',
  'PRIMVOL.REPLACE 255',
 
  'STGPOOL.RESTORE 255',
  'INSTR.GENERAL 132',
  'INSTR.OFFSITE 132',
  'INSTR.INSTALL 132',
  'INSTR.DATABASE 132',
  'INSTR.STGPOOL 132',
  'VOLHIST.FILE 1024',
  'DEVCONF.FILE 1024',
  'SERVOPT.FILE 255'
 
'FREE FI(INDD)'
'ALLOC DA('RPDSN'') F(INDD) SHR REUSE'OUTDSN = '
do forever
   'EXECIO 1 DISKR INDD (STEM ALINE.'
   if RC = 0 then do
      parse var ALINE.1 WORD1 WORD2 THEREST
      select
        when WORD1 = 'begin',
           & (wordpos(WORD2,STANZAS) > 0) then do
             if OUTDSNPREFIX <> '' then,
                OUTDSN = 'OUTDSNPREFIX'.'WORD2'
             else OUTDSN = WORD2
             LRECL = word(STANZAS,wordpos(WORD2,STANZAS)+1)
             'FREE FI(OUTDD)'
             'DELETE 'OUTDSN
             'ALLOC DA('OUTDSN') F(OUTDD) NEW REUSE RECFM(F) LRECL('LREC
             say 'Creating file 'OUTDSN
             FIRSTLINE = YES
             end
        when WORD1 = 'end',
           & (wordpos(WORD2,STANZAS) > 0) then do
             'EXECIO 0 DISKW OUTDD (FINIS'
             'FREE FI(OUTDD)'
             OUTDSN = '
             end
        when OUTDSN <> '' then do
             /* Forget blank first line of stanzas.(JCL,EXEC grief) */
             if FIRSTLINE = YES then FIRSTLINE = NO
             else do
                  /* Add local parameters to job cards. */
                  if substr(WORD1,1,2) = '//',
                   & WORD2 = 'JOB',
                   & THEREST = '' then do
                     ALINE.1 =,
 
 WORD1' 'WORD2' MSGLEVEL=(1,1),MSGCLASS=H,CLASS=A,TIME=1440,REGION=128M'
                     end
                  /* Add local steplib for server. */
                  if WORD1 = '//OPT',
                   & WORD2 = 'DD' then do
                     TEMP = ALINE.1
                     ALINE.1 =,
                           '//STEPLIB  DD DSN=SYSX.LINKLIB,DISP=SHR'
                     'EXECIO 1 DISKW OUTDD (STEM ALINE.'
                     ALINE.1 = TEMP
                     end
                  /* Write out the stanza line read in. */
                  'EXECIO 1 DISKW OUTDD (STEM ALINE.'
                  end
             end
        otherwise nop
      end /* select */
      end /* do */
   else leave
end /* do */
 
'EXECIO 0 DISKR INDD (FINIS'
'EXECIO 0 DISKW OUTDD (FINIS'
'FREE FI(INDD OUTDD)'

Structure of the Disaster Recovery Plan File

The disaster recovery plan is divided into stanzas. You can find these stanza files under the high-level qualifier specified for the disaster recovery plan file. The stanzas, which are presented in the order in which the recovery team would use them, can be categorized as follows:

Command stanzas
Consist of JCL, REXX EXEC, and TSM macros. They can be viewed, printed, updated, or executed as part of the disaster recovery process.

Instruction stanzas
Consist of recovery instructions specific to your site. They can be printed, updated, and used during server recovery.

Server requirements stanzas
Consist of the database and recovery log requirements, and volume and device requirements. They can be viewed or printed.

Configuration file stanzas
Consist of the volume history, device configuration, and server options files.
Note:The RECOVERY.DRMODE and RECOVERY.NMODE stanzas contain the REXX EXEC that invokes JCL and macros contained in the other stanzas.
Table 24 lists the recovery plan file stanzas, and indicates what type of administrative processing is required during setup of DRM, routine processing, or disaster recovery. It also indicates whether the stanza contains a macro, JCL, script, or a configuration file.

Table 24. Administrative Tasks Associated with the Disaster Recovery Plan File

Stanza Name Action during Setup or Periodic Updates Recommended Action during Routine Processing Action during Disaster Recovery
PLANFILE.DESCRIP None None None
PLANFILE.CONTENTS None None None
SERVER.REQUIRE None None None
INSTR.GENERAL Optionally edit the source file associated with the stanza None None
INSTR.OFFSITE Optionally edit the source file associated with the stanza None None
INSTR.INSTALL Optionally edit the source file associated with the stanza None None
INSTR.DATABASE Optionally edit the source file associated with the stanza None None
INSTR.STGPOOL Optionally edit the source file associated with the stanza None None
VOLUMES.REQUIRED None MOVE DRMEDIA None
DEVICES.REQUIRED None None None
RECOVERY.DRMODE REXX exec None None Optionally edit/execute
RECOVERY.NMODE REXX exec None None Optionally edit/execute
CFGFILES.CREATE jcl None None Optionally edit/execute
LOGDBVOL.CREATE jcl None None Optionally edit/execute
LOGDBVOL.INSTALL jcl None None Optionally edit/execute
RESTORE.DB jcl None None Optionally edit/execute
START.SERVER jcl None None Optionally edit/execute
COPYVOL.AVAIL macro None MOVE DRMEDIA Optionally edit/execute
COPYVOL.DESTR macro None MOVE DRMEDIA Optionally edit/execute
PRIMVOL.DESTR macro None None Optionally edit/execute
PRIMVOL.REPLACEC jcl None None Optionally edit/execute
PRIMVOL.REPLACE macro None None Optionally edit/execute
STGPOOL.RESTORE macro None None Optionally edit/execute
VOLHIST.FILE configuration file None None Optionally copy
DEVCONF.FILE configuration file None None Optionally edit/copy
SERVOPT.FILE configuration file None None Optionally edit/copy
Note:In the column "Administrative Action during Setup or Periodic Updates," None indicates that DRM automatically collects this information for the file.

Table 24 lists the recovery plan file stanzas, and indicates what type of administrative processing is required during setup of DRM, routine processing, or disaster recovery. It also indicates whether the stanza contains a macro, JCL, script, or a configuration file.

Example Disaster Recovery Plan File

This section contains an example of a disaster recovery plan file and information about each stanza. The disaster recovery plan file has been divided into separate figures that correlate to the descriptions of specific stanzas within each figure.

Figure 87 shows the SMS versions of some of the stanzas.

Description and Table of Contents Stanzas

PLANFILE.DESCRIP
Identifies the server for this recovery plan, and the date and time that the recovery plan is created.

PLANFILE.CONTENTS
Provides a list of the stanzas in this recovery plan.

Figure 75. Description and Table of Contents Stanzas


*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin PLANFILE.DESCRIP
 
Recovery Plan for Server DSM
Created by DRM PREPARE on 09/30/1999 12:01:54
Server for MVS - Version 3, Release 7, Level x
 
end PLANFILE.DESCRIP
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin PLANFILE.CONTENTS
 
PLANFILE.DESCRIP
PLANFILE.CONTENTS
 
Server Recovery Stanzas:
  SERVER.REQUIRE
  INSTR.GENERAL
  INSTR.OFFSITE
  VOLUMES.REQUIRED
  DEVICES.REQUIRED
  RECOVERY.DRMODE exec
  RECOVERY.NMODE exec
  CFGFILES.CREATE jcl
  LOGDBVOL.CREATE jcl
  LOGDBVOL.INSTALL jcl
  RESTORE.DB jcl
  START.SERVER jcl
  COPYVOL.AVAIL macro
  COPYVOL.DESTR macro
  PRIMVOL.DESTR macro
  PRIMVOL.REPLACEC jcl
  PRIMVOL.REPLACE macro
  STGPOOL.RESTORE macro
  VOLHIST.FILE
  DEVCONF.FILE
  SERVOPT.FILE
  LICENSE.INFO
 
end PLANFILE.CONTENTS
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Server Requirements Stanza

SERVER.REQUIRE
Identifies the database and recovery log storage requirements for this server. At the recovery site, you will need a replacement server machine that has enough disk space to install the database and recovery log volumes.

Figure 76. Server Requirements Stanza


*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
begin SERVER.REQUIRE
 
Database Requirements Summary:
 
    Available Space (MB): 20
  Assigned Capacity (MB): 20
        Pct. Utilization: 2.7
Maximum Pct. Utilization: 2.7
        Physical Volumes: 2
 
Recovery Log Requirements Summary:
 
    Available Space (MB): 20
  Assigned Capacity (MB): 20
        Pct. Utilization: 6.2
Maximum Pct. Utilization: 6.2
        Physical Volumes: 2
 
end SERVER.REQUIRE
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 

Recovery Instructions Stanzas

INSTR.GENERAL
Identifies the site-specific instructions that the server administrator has manually edited in the source text file identified by instructionsprefix.INSTR.GENERAL. It is recommended that the instructions include the overall recovery strategy, the key contact names, an overview of key applications backed up by this server, and so on.
Note:Instructionsprefix is the prefix portion of the file name. See Prefix for Recovery Instructions.

For more information on editing the text source file, see Customizing the Site-Specific Recovery Instructions.

INSTR.OFFSITE
Identifies the site-specific instructions that the server administrator has manually edited to the source text file identified by instructionsprefix.INSTR.OFFSITE. It is recommended that the instructions include the name and location of the offsite vault and how to contact the vault.
Note:Instructionsprefix is the prefix portion of the file name. See Prefix for Recovery Instructions.

For more information on editing the text source file, see Customizing the Site-Specific Recovery Instructions.

INSTR.INSTALL
Identifies the site-specific instructions that the server administrator has manually edited to the source text file identified by instructionsprefix.INSTR.INSTALL. It is recommended that the instructions include where the TSM server and TSM administrative client install volumes are located.
Note:Instructionsprefix is the prefix portion of the file name. See Prefix for Recovery Instructions.

For more information on editing the text source file, see Customizing the Site-Specific Recovery Instructions.

INSTR.DATABASE
Identifies the site-specific instructions that the server administrator has manually edited to the source text file identified by instructionsprefix.INSTR.DATABASE. Information in this stanza should include how to prepare for the TSM database recovery. For example, if the backup device is a 3494 library, you may want to provide instructions on how to initialize the library or on how to check in the backup volumes to the library.
Note:Instructionsprefix is the prefix portion of the file name. See Prefix for Recovery Instructions.

For more information on editing the text source file, see Customizing the Site-Specific Recovery Instructions.

INSTR.STGPOOL
Identifies the site-specific instructions that the server administrator has manually edited to the source text file identified by instructionsprefix.INSTR.STGPOOL. It is recommended that the instructions include which applications are backed up in which copy storage pools.
Note:Instructionsprefix is the prefix portion of the file name. See Prefix for Recovery Instructions.

For more information on editing the text source file, see Customizing the Site-Specific Recovery Instructions.

Figure 77. Recovery Instructions Stanzas


*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
begin INSTR.GENERAL
 
 This server contains the backup and archive data for XYZ corporation
 accounts receivable system. It also is used by various end users in the
 finance and materials distribution organizations.
 The storage administrator in charge of this server is Jane Doe 444-561-3406.
 If a disaster is declared, here is the outline of steps that must be done.
 1. Determine the recovery site.  Our alternate recovery site vendor is IBM
    BRS in Tampa, Florida, U.S.A. 213-884-5647.
 2. Get the list of required recovery volumes from this recovery plan file
    and contact our offsite vault so that they can start pulling the
    volumes for transfer to the recovery site.
 
end INSTR.GENERAL
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin INSTR.OFFSITE
 
 Our offsite vault location is IRONVAULT.
 Their telephone number is 514-555-2341.  Our account rep is Joe Smith.
 Our account number is 1239992.  Their address is ...
 Here is a map to their warehouse ...
 Our courier is ...
 
end INSTR.OFFSITE
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Volume and Device Requirements Stanzas

VOLUMES.REQUIRED

Provides a list of the database backup and copy storage pool volumes required to recover the TSM server. This list can include both virtual volumes and nonvirtual volumes. A database backup volume is included if it is part of the most recent database backup series. A copy storage pool volume is included if it is not empty and not marked destroyed. The location and device class names for the volumes are displayed.

If you are using a nonvirtual volume environment and issuing the MOVE DRMEDIA command for offsite recovery media management, a blank location field means that the volumes are onsite and available to the TSM server. This volume list can be used as the basis of periodic audits for the inventory of volumes at the courier and offsite vault. In the event of a disaster, the list is used to collect the required volumes before starting server recovery.

If you are using a virtual volume environment, the location field will contain the target server name.

DEVICES.REQUIRED
Provides details about the devices required to read the backup volumes.

Figure 78. Volume and Device Requirements Stanzas


*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin VOLUMES.REQUIRED
 
Volumes required for database restore
 
 Location = HsiaoVan
  Device Class = LIB3494
  Volume Name =
   DBTP02
 Location = IRONVAULT
  Device Class = LIB3494
  Volume Name =
   DBTP01
 
Volumes required for storage pool restore
 
 Location = HsiaoVan
  Copy Storage Pool = CSTORAGEPF
  Device Class = LIB3494
  Volume Name =
   CSTP01
 
  Location = IRONVAULT
  Copy Storage Pool = CSTORAGEPF
  Device Class = LIB3494
  Volume Name =
   CSTP05
 
 Location =
  Copy Storage Pool = CSTORAGEPFA
  Device Class = LIB3494
  Volume Name =
   CSTP07
 
end VOLUMES.REQUIRED
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 
begin DEVICES.REQUIRED
 
 Purpose: Description of the devices required to read the
          volumes listed in the recovery volumes required stanza.
 
             Device Class Name: LIB3494
        Device Access Strategy: Sequential
            Storage Pool Count: 2
                   Device Type: CARTRIDGE
                     Unit Name:
         Est/Max Capacity (MB): 4.0
                   Mount Limit: 2
              Mount Wait (min):
         Mount Retention (min):
           Dataset Name Prefix:
Last Update by (administrator): M123456
         Last Update Date/Time: 08/12/1999 17:53:07
 
end DEVICES.REQUIRED
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Disaster Recovery Mode Stanza

RECOVERY.DRMODE
Contains the REXX EXEC with the commands required to restore the database and restart the server. Use it as a guide and execute the commands as needed from a command line, or you can copy it to a file, modify it and the files that it references, and execute the script.

At the completion of these steps, client requests for file restores will be satisfied directly from the copy storage pool volumes.

This REXX EXEC will often need modification at the recovery site because of differences between the original and the replacement systems.

This REXX EXEC restores the server options, volume history, and device configuration information files.

This REXX EXEC invokes JCL contained in the following stanzas:

CFGFILES.CREATE
LOGDBVOL.CREATE
LOGDBVOL.INSTALL
RESTORE.DB
START.SERVER

This REXX EXEC also invokes the TSM macros contained in the following stanzas:

COPYVOL.AVAIL
COPYVOL.DESTR
PRIMVOL.DESTR

To help understand the operations being performed in this script, see the TSM Backup and Recovery Scenarios in Administrator's Reference.

To invoke this REXX EXEC, the following three positional parameters must be specified:

For example, to invoke this REXX EXEC using an administrator ID of don, password of mox, and server name of prodtsm, enter the following command:

exec planprefix.RECOVERY.DRMODE don mox prodtsm

For additional information on planprefix, see Prefix for the Recovery Plan File.

Figure 79. Disaster Recovery Mode Stanza


*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin RECOVERY.DRMODE exec
 /*REXX*/
 parse ARG ID PASS SERV .
 trace 'r'
 /* Purpose: This REXX exec contains the steps required to recover the server */
 /*   to the point where client restore requests can be satisfied             */
 /*   directly from available copy storage pool volumes.                      */
 /* Note: This exec assumes that all volumes necessary for the restore have   */
 /*   been retrieved from the vault and are available. This exec assumes      */
 /*   the recovery environment is compatible (essentially the same) as the    */
 /*   original.  Any deviations require modification to this exec and the     */
 /*   macros and execs that it runs.  Alternatively, you can use this         */
 /*   exec as a guide and manually execute each step.                         */
 /* Restore server options, volume history, device configuration files. */
'SUBMIT 'DRM.DSM1509.CFGFILES.CREATE'
pull PAUSE
 /* Create and format log and database files. */
'SUBMIT 'DRM.DSM1509.LOGDBVOL.CREATE'
pull PAUSE
 
 /* Install the log and database files. */
'SUBMIT 'DRM.DSM1509.LOGDBVOL.INSTALL'
pull PAUSE
 
 /* Restore the server database to latest version backed up per the */
 /* volume history file.                                                 */
'SUBMIT 'DRM.DSM1509.RESTORE.DB'
pull PAUSE
 
 /* Start the server. */
'SUBMIT 'DRM.DSM1509.START.SERVER'
pull PAUSE
 
 /* Tell Server these copy storage pool volumes are available for use. */
 /* Recovery Administrator: Remove from macro any volumes not obtained from */
 /*                         the vault.                                      */
'DSMADMC -id='ID' -pass='PASS' -serv='SERV' -ITEMCOMMIT',
  '-OUTFILE='DRM.DSM1509.COPYVOL.AVAIL.LG',
     'macro 'DRM.DSM1509.COPYVOL.AVAIL'
 
 /* Volumes in this macro were not marked as 'offsite' at the time       */
 /* PREPARE ran. They were likely destroyed in the disaster.             */
 /* Recovery Administrator: Remove from macro any volumes not destroyed. */
'DSMADMC -id='ID' -pass='PASS' -serv='SERV' -ITEMCOMMIT',
  '-OUTFILE='DRM.DSM1509.COPYVOL.DESTR.LG',
     'macro 'DRM.DSM1509.COPYVOL.DESTR'
 /* Mark primary storage pool volumes with ACCESS=DESTROYED.             */
 /* Recovery administrator: Remove from macro any volumes not destroyed. */
'DSMADMC -id='ID' -pass='PASS' -serv='SERV' -ITEMCOMMIT',
  '-OUTFILE='DRM.DSM1509.PRIMVOL.DESTR.LG',
     'macro 'DRM.DSM1509.PRIMVOL.DESTR'
 
end RECOVERY.DRMODE exec
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Normal Mode Stanza

RECOVERY.NMODE
Contains the REXX EXEC with the commands required to restore the server primary storage pools. Use it as a guide and execute the commands as needed from a command line, or you can copy it to a file, modify it and the files that it references, and execute it.

At the completion of these steps, client requests for file restores are satisfied from the primary storage pool volumes. Clients should also be able to resume file backup, archive, and migration functions.

This REXX EXEC will often need modification at the recovery site because of differences between the original and the replacement systems.

This REXX EXEC invokes JCL contained in the following stanza:

PRIMVOL.REPLACEC

This REXX EXEC also invokes the TSM macros contained in the following stanzas:

PRIMVOL.REPLACE
STGPOOL.RESTORE

To help understand the operations being performed in this script, see the TSM Backup and Recovery Scenarios in Administrator's Reference.

Figure 80. Normal Mode Stanza


*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin RECOVERY.NMODE exec
 /*REXX*/
 parse ARG ID PASS SERV .
 trace 'r'
 /* Purpose: This exec contains the steps required to recover the server */
 /*          primary storage pools. This mode allows you to return the     */
 /*          copy storage pool volumes to the vault and to run the         */
 /*          server as normal.                                             */
 /* Note: This exec assumes that all volumes necessary for the restore   */
 /*   have been retrieved from the vault and are available. This exec    */
 /*   assumes the recovery  environment is compatible (essentially the     */
 /*   same) as the original.  Any deviations require modification to       */
 /*   this exec and the macros and execs that it runs.  Alternatively,     */
 /*   you can use this exec as a guide and manually execute each step.     */
 
 /* Format replacement volumes in the primary storage pools (if any  */
 /* were implemented as DISK.)                                       */
 /* Volumes must have different name than original.                  */
 /* Recovery administrator: Edit exec for your replacement volumes.*/
 
'SUBMIT 'DRM.DSM1509.PRIMVOL.REPLACEC'
pull PAUSE
 
 /* Define replacement volumes in the primary storage pools.         */
 /* Volumes must have different name than original.                  */
 /* Recovery administrator: Edit macro for your replacement volumes. */
'DSMADMC -id='ID' -pass='PASS' -serv='SERV' -ITEMCOMMIT',
  '-OUTFILE='DRM.DSM1509.PRIMVOL.REPLACE.LG',
     'macro 'DRM.DSM1509.PRIMVOL.REPLACE'
 
 /* Restore the primary storage pools from the copy storage pools.   */
 /* Recovery administrator: Remove from macro any storage pools you  */
 /*                         do not want restored.                    */
'DSMADMC -id='ID' -pass='PASS' -serv='SERV' -ITEMCOMMIT',
  '-OUTFILE='DRM.DSM1509.STGPOOL.RESTORE.LG',
     'macro 'DRM.DSM1509.STGPOOL.RESTORE'
 
end RECOVERY.NMODE exec
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Creates Files Stanza

CFGFILES.CREATE
Contains JCL required to create the TSM server options file, volume history file, and device configuration file. You can use it as a guide, or you can copy it to a file, modify it, and execute it.

This JCL is invoked by the REXX EXEC RECOVERY.DRMODE.

Figure 81. Create Files Stanza


*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin CFGFILES.CREATE jcl
 
//DRMCFGFC JOB
//******************************************************************
//*
//* Purpose: Create options, volume history, and device configuration.
//* Recovery Administrator: Run this to create the options, volhist,
//*   and devconfig files.
//******************************************************************
//* Create the server options file.
//******************************************************************
//SERVOPTD EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=*
//SYSABEND DD DUMMY
//DD1      DD UNIT=3390,VOL=SER=DRMSC1,DISP=OLD
//SYSIN    DD *
 SCRATCH DSNAME=TIVSMSERV.DSM1509.DSMSERV.OPTX,                         C
               VOL=3390=DRMSC1,PURGE
 UNCATLG DSNAME=TIVSMSERV.DSM1509.DSMSERV.OPTX
/*
//SERVOPT  EXEC PGM=IEBGENER
//SYSPRINT  DD SYSOUT=*
//SYSIN     DD DUMMY
//SYSUT1    DD DSN=DRM.DSM1509.SERVOPT.FILE,DISP=SHR
//SYSUT2    DD DSN=TIVSMSERV.DSM1509.DSMSERV.OPTX,DISP=(,CATLG,DELETE),
//          UNIT=3390,VOL=SER=DRMSC1,
//          SPACE=(TRK,(1,10),RLSE),
//          DCB=*.SERVOPT.SYSUT1
//******************************************************************
//* Create the volume history file.
//******************************************************************
//VOLHISTD EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=*
//SYSABEND DD DUMMY
//DD1      DD UNIT=3390,VOL=SER=DRMSC1,DISP=OLD
//SYSIN    DD *
 SCRATCH DSNAME=TIVSMSERV.DSM1509.VOLHIST.TXTX,                         C
               VOL=3390=DRMSC1,PURGE
 UNCATLG DSNAME=TIVSMSERV.DSM1509.VOLHIST.TXTX
/*
//VOLHIST  EXEC PGM=IEBGENER
//SYSPRINT  DD SYSOUT=*
//SYSIN     DD DUMMY
//SYSUT1    DD DSN=DRM.DSM1509.VOLHIST.FILE,DISP=SHR
//SYSUT2    DD DSN=TIVSMSERV.DSM1509.VOLHIST.TXTX,DISP=(,CATLG,DELETE),
//          UNIT=3390,VOL=SER=DRMSC1,
//          SPACE=(TRK,(10,10),RLSE),
//          DCB=*.VOLHIST.SYSUT1
//******************************************************************
//* Create the device configuration file.
//******************************************************************
//DEVCONFD EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=*
//SYSABEND DD DUMMY
//DD1      DD UNIT=3390,VOL=SER=DRMSC1,DISP=OLD
//SYSIN    DD *
 SCRATCH DSNAME=TIVSMSERV.DSM1509.DEVCONF.TXTX,
               VOL=3390=DRMSC1,PURGE
 UNCATLG DSNAME=TIVSMSERV.DSM1509.DEVCONF.TXTX
/*
//DEVCONF  EXEC PGM=IEBGENER
//SYSPRINT  DD SYSOUT=*
//SYSIN     DD DUMMY
//SYSUT1    DD DSN=DRM.DSM1509.DEVCONF.FILE,DISP=SHR
//SYSUT2    DD DSN=TIVSMSERV.DSM1509.DEVCONF.TXTX,DISP=(,CATLG,DELETE),
//          UNIT=3390,VOL=SER=DRMSC1,
//          SPACE=(TRK,(1,10),RLSE),
//          DCB=*.DEVCONF.SYSUT1
 
end CFGFILES.CREATE jcl
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Server Recovery Stanzas

LOGDBVOL.CREATE
Contains JCL required to recreate the TSM database and log volumes that existed before the disaster. You can use it as a guide, or you can copy it to a file, modify it, and execute it.

This JCL is invoked by the REXX EXEC RECOVERY.DRMODE.

LOGDBVOL.INSTALL
Contains JCL required to install the TSM database and log volumes that existed before the disaster. You can use it as a guide, or you can copy it to a file, modify it, and execute it.

This JCL is invoked by the REXX EXEC RECOVERY.DRMODE.

RESTORE.DB
Contains JCL to restore the TSM database. This JCL is invoked by the REXX EXEC RECOVERY.DRMODE.

START.SERVER
Contains JCL to start the TSM server. This JCL is invoked by the REXX EXEC RECOVERY.DRMODE.

Figure 82. Server Recovery Stanzas


*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin LOGDBVOL.CREATE jcl
 
//DRMLGDBC JOB
//******************************************************************
//*
//* Purpose: Create log and database volumes.
//* Recovery Administrator: Run this to format log
//* and database volumes.
//******************************************************************
//* Create database volume DSMSERV.DSM1509.DB01X 10M
//******************************************************************
//*
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TIVSMSERV.DSM1509.DB01X)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TIVSMSERV.DSM1509.DB01X) LINEAR MB(10) -
        VOL(TIVSM01) )
//*
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TIVSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TIVSMSERV.DSM1509.DB01X'
//DSMAMENG  DD  DSN=TIVSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
//*
//* Create database volume TIVSMSERV.DSM1509.DB02X 10M
//******************************************************************
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TIVSMSERV.DSM1509.DB02X)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TIVSMSERV.DSM1509.DB02X) LINEAR MB(10) -
        VOL(TIVSM01))
//*
 
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TIVSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TIVSMSERV.DSM1509.DB02X'
//DSMAMENG  DD  DSN=TIVSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
//*
//* Create log volume TIVSMSERV.DSM1509.LG01X 10M
//******************************************************************
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TIVSMSERV.DSM1509.LG01X)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TIVSMSERV.DSM1509.LG01X) LINEAR MB(10) -
        VOL(TIVSM01) )
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TIVSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TIVSMSERV.DSM1509.LG01X'
//DSMAMENG  DD  DSN=TIVSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
//*
//* Create log volume TIVSMSERV.DSM1509.LG02X 10M
//******************************************************************
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TIVSMSERV.DSM1509.LG02X)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TIVSMSERV.DSM1509.LG02X) LINEAR MB(10) -
        VOL(TIVSM01) )
 
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TIVSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TIVSMSERV.DSM1509.LG02X'
//DSMAMENG  DD  DSN=TIVSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
 
end LOGDBVOL.CREATE jcl*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin LOGDBVOL.INSTALL jcl
 
//DRMINST JOB
//******************************************************************
//* Purpose: Install server database and log volumes.
//* Recovery Administrator: Run this to install the server database
//*   and log volumes.
//****************************************************************
//SERVDSKD EXEC PGM=IEHPROGM
//****************************************************************
//SYSPRINT DD SYSOUT=*
//SYSABEND DD DUMMY
//DD1      DD UNIT=3390,VOL=SER=DRMSC1,DISP=OLD
//SYSIN    DD *
 SCRATCH DSNAME=TIVSMSERV.DSM1509.DISKLOG,
               VOL=3390=DRMSC1,PURGE
 UNCATLG DSNAME=TIVSMSERV.DSM1509.DISKLOG
/*
//****************************************************************
//DELPARMS EXEC PGM=IDCAMS
//****************************************************************
//SYSPRINT DD  SYSOUT=*
//SYSIN    DD  *
 DELETE (TIVSMSERV.DSM1509.LOGDBVOL.PARMLOG)
 DELETE (TIVSMSERV.DSM1509.LOGDBVOL.PARMLOG) NOSCRATCH
 DELETE (TIVSMSERV.DSM1509.LOGDBVOL.PARMDB)
 DELETE (TIVSMSERV.DSM1509.LOGDBVOL.PARMDB) NOSCRATCH
 IF MAXCC <= 8 THEN SET MAXCC = 0
/*//****************************************************************
//PARMLOG  EXEC PGM=IEBGENER            LOG PARAMETERS FOR INSTALL
//****************************************************************
//SYSIN    DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSUT2   DD DSN=TIVSMSERV.DSM1509.LOGDBVOL.PARMLOG,
//         DISP=(,CATLG,DELETE),
//         SPACE=(TRK,(1,1)),
//         UNIT=SYSDA,
//         DCB=(RECFM=FB,LRECL=80,BLKSIZE=6160)
//SYSUT1   DD *
TIVSMSERV.DSM1509.LG01X
TIVSMSERV.DSM1509.LG02X
/*
//****************************************************************
//PARMDB   EXEC PGM=IEBGENER             DB PARAMETERS FOR INSTALL
//****************************************************************
//SYSIN    DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSUT2   DD DSN=TIVSMSERV.DSM1509.LOGDBVOL.PARMDB,
//         DISP=(,CATLG,DELETE),
//         SPACE=(TRK,(1,1)),
//         UNIT=SYSDA,
//         DCB=(RECFM=FB,LRECL=80,BLKSIZE=6160)
//SYSUT1   DD *
TIVSMSERV.DSM1509.DB01X
TIVSMSERV.DSM1509.DB02X
/*//***************************************************************/
//SERVER  EXEC PGM=DSMSERV,DYNAMNBR=300,
//***************************************************************/
// PARM='/INSTALL 2 FILE:TIVSMSERV.DSM1509.LOGDBVOL.PARMLOG
//             2 FILE:TIVSMSERV.DSM1509.LOGDBVOL.PARMDB'
//OPT      DD DSN=TIVSMSERV.DSM1509.DSMSERV.OPTX,DISP=SHR
//DSMAMENG DD DSN=TIVSMSERV.SANRMSG(ANRMENU),DISP=SHR
//HLPAMENG DD DSN=TIVSMSERV.SANRHLP(ANRMENU),DISP=SHR
//***************************************************************/
//*  The Disk Log data set is allocated and created as a        */
//*  result of this job.  The data sets identified in the PARM  */
//*  field of the EXEC statement WILL be (re-)formatted and     */
//*  if they were previously used, the existing information will*/
//*  be lost.  DO NOT execute this job unless it is absolutely  */
//*  necessary.  It must not be used to UPGRADE a release 1     */
//*  server environment to Version 2.                           */
//***************************************************************/
//DSK      DD DSN=TIVSMSERV.DSM1509.DISKLOG,DISP=(NEW,CATLG),
//            SPACE=(TRK,(1,1)),
//            UNIT=3390,VOL=SER=TIVSM03,
//            DCB=(RECFM=FB,BLKSIZE=800,LRECL=80)
//SYSPRINT DD SYSOUT=*
//SYSTERM  DD SYSOUT=*
 
end LOGDBVOL.INSTALL jcl
 
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin RESTORE.DB jcl
 
//DRMREST JOB
//******************************************************************
//* Purpose: Restore server database.
//* Recovery Administrator: Run this job to restore the server
//*   database from database backup volumes.
//******************************************************************
//SERVER  EXEC PGM=DSMSERV,DYNAMNBR=300,
// PARM='/RESTORE DB TODATE=09/03/1999 TOTIME=12:01:04'
//OPT      DD DSN=TIVSMSERV.DSM1509.DSMSERV.OPTX,DISP=SHR
//DSMAMENG DD DSN=TIVSMSERV.SANRMSG(ANRMENU),DISP=SHR
//HLPAMENG DD DSN=TIVSMSERV.SANRHLP(ANRMENU),DISP=SHR
//DSK      DD DSN=TIVSMSERV.DSM1509.DISKLOG,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSTERM  DD SYSOUT=*
 
end RESTORE.DB jcl
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin START.SERVER jcl
 
//TIVSM JOB
//******************************************************************
//* Purpose: Start the server.
//* Recovery Administrator: Run this job to start the server.
//******************************************************************
//SERVER  EXEC PGM=DSMSERV,DYNAMNBR=300
//OPT      DD DSN=TIVSMSERV.DSM1509.DSMSERV.OPTX,DISP=MOD
//DSMAMENG DD DSN=TIVSMSERV.SANRMSG(ANRMENU),DISP=SHR
//HLPAMENG DD DSN=TIVSMSERV.SANRHLP(ANRMENU),DISP=SHR
//DSK      DD DSN=TIVSMSERV.DSM1509.DISKLOG,DISP=SHR
//SYSPRINT DD SYSOUT=*
 
end START.SERVER jcl
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 

Copy Storage Pool Volumes Stanzas

COPYVOL.AVAIL
Contains a TSM macro to mark copy storage pool volumes that were moved offsite as moved back onsite.This stanza does not include copy storage pool that are virtual volumes. You can use it as a guide and execute the TSM administrative commands as needed from a command line or graphical user interface, or you can copy it to a file, modify it, and execute it.

This macro is invoked by the REXX EXEC RECOVERY.DRMODE.

In the event of a disaster, compare the copy storage pool volumes listed in this stanza with the volumes you have obtained from the courier and the offsite vault. If you have not physically obtained all volumes, you should remove the entries for the missing volumes from this stanza.

COPYVOL.DESTR
Contains a TSM macro to mark copy storage pool volumes as unavailable that were onsite at the time of the disaster. You can use it as a guide and execute the TSM administrative commands as needed from a command line or graphical user interface, or you can copy it to a file, modify it, and execute it.

This macro is invoked by the REXX EXEC RECOVERY.DRMODE.

In the event of a disaster, compare the copy storage pool volumes listed in this stanza with the volumes that were left onsite. If you have physically obtained any of the volumes, you should remove their entries from this stanza.

This stanza does not include copy storage pool virtual volumes, because these volumes are considered offsite and have not been destroyed in a disaster.

Figure 83. Copy Storage Pool Volumes Stanzas


*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin COPYVOL.AVAIL macro
 
 /* Purpose: Mark copy storage pool volumes as available for use in recovery. */
 /* Recovery Administrator: Remove any volumes that have not been obtained    */
 /*   from the vault or are not available for any reason.                     */
 /* Note: It is possible to use the mass update capability of the             */
 /*   UPDATE command instead of issuing an update for each volume. However,   */
 /*   the 'update by volume' technique used here allows you to select         */
 /*   a subset of volumes to be processed.                                    */
 
 upd vol TIVSMSERV.DSM1509.BK07 acc=READW wherestg=CSTORAGEPF
 upd vol TIVSMSERV.DSM1509.BK70 acc=READW wherestg=CSTORAGEPF
 upd vol TIVSMSERV.DSM1509.BK99 acc=READW wherestg=CSTORAGEPFA
 
end COPYVOL.AVAIL macro
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin COPYVOL.DESTR macro
 
 /* Purpose: Mark destroyed copy storage pool volumes as unavailable.      */
 /*   Volumes in this macro were not marked as 'offsite' at the time the   */
 /*   PREPARE ran. They were likely destroyed in the disaster.             */
 /* Recovery Administrator: Remove any volumes that were not destroyed.    */
 
end COPYVOL.DESTR macro
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 

Primary Storage Pool Volumes Stanzas

PRIMVOL.DESTR
Contains a TSM macro to mark primary storage pool volumes as destroyed that were onsite at the time of disaster. You can use it as a guide and execute the TSM administrative commands as needed from a command line or graphical user interface, or you can copy it to a file, modify it, and execute it.

This macro is invoked by the REXX EXEC RECOVERY.DRMODE.

In the event of a disaster, compare the primary storage pool volumes listed in this stanza with the volumes that were onsite. If you have physically obtained any of the volumes and have determined they are usable, you should remove their entries from here.

This stanza does not include primary storage pool virtual volumes, because these volumes are considered offsite have not been destroyed in a disaster.

PRIMVOL.REPLACEC
Contains JCL required to allocate and format the replacement primary storage pool volumes that were of device class DISK. You can use it as a guide, or you can copy it to a file, modify it, and execute it.

This JCL is invoked by the REXX EXEC RECOVERY.NMODE.

The SET DRMPLANVPOSTFIX character is appended to the end of the names of the original volumes listed in this stanza. This appended character serves two alternative strategies:

Notes:

  1. Replacement primary volume names must be different from any other original volume name or replacement name.

  2. The RESTORE STGPOOL command restores storage pools on a logical basis. There is no one-to-one relationship between an original volume and its replacement.

  3. There will be corresponding entries to define these volumes in the stanza PRIMVOL.REPLACE. If you choose to change the names of volumes in this stanza, you will also need to change the corresponding entries in PRIMVOL.REPLACE.

PRIMVOL.REPLACE
Contains a TSM macro to define replacement primary storage pool volumes to the TSM server. You can use it as a guide and execute the TSM administrative commands as needed from a command line or graphical user interface, or you can copy it to a file, modify it, and execute it.

This macro is invoked by the REXX EXEC RECOVERY.NMODE.

Primary storage pool volumes that get entries in this stanza have at least one of the following three characteristics:

  1. Original volume in a storage pool whose device class was DISK
  2. Original volume in a storage pool with MAXSCRATCH=0
  3. Original volume in a storage pool and volume scratch attribute=no

The SET DRMPLANVPOSTFIX character is appended to the end of the names of the original volumes listed in this stanza. This appended character serves two alternative strategies:

Notes:

  1. Replacement primary volume names must be different from any other original volume name or replacement name.

  2. The RESTORE STGPOOL command restores storage pools on a logical basis. There is no one-to-one relationship between an original volume and its replacement.

  3. There will be entries for the same volume in PRIMVOL.REPLACEC and PRIMVOL.REPLACE if the volume has a device class of DISK. If you choose to change the names of the volumes in this stanza, you will also need to change the corresponding entries in PRIMVOL.REPLACEC.

  4. You must be careful not to violate the data set name or removable volume label requirements of the MVS operating system. The PLANVOLPOSTFIX character increases the length of the data set name or removable volume label by 1. For example, for a primary volume of device type DISK:

Original Name DRMPLANVPOSTFIX Replacement Legal Name for MVS
xyz.abc.1234567 R xyz.abc.1234567R Yes
xyz.abc.12345678 R xyz.abc.12345678R No

Figure 84. Primary Storage Pool Volumes Stanzas


*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin PRIMVOL.DESTR macro
 
 /* Purpose: Mark primary storage pool volumes as ACCESS=DESTROYED.        */
 /* Recovery administrator: Delete any volumes listed here                 */
 /*   that you do not want to recover.                                     */
 /* Note: It is possible to use the mass update capability of the          */
 /*   UPDATE command instead of issuing an update for each volume. However */
 /*   the 'update by volume' technique used here allows you to select      */
 /*   a subset of volumes to be marked as destroyed.                       */
 
 upd vol TIVSMSERV.DSM1509.AR01 acc=DESTROYED wherestg=ARCHIVEPOOL
 upd vol TIVSMSERV.DSM1509.BK02 acc=DESTROYED wherestg=BACKUPPOOL
 upd vol TIVSMSERV.DSM1509.BK01x acc=DESTROYED wherestg=BACKUPPOOL
 upd vol TIVSMSERV.DSM1509.BK03 acc=DESTROYED wherestg=BACKUPPOOLF
 upd vol BACK4X acc=DESTROYED wherestg=BACKUPPOOLT
 
end PRIMVOL.DESTR macro
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin PRIMVOL.REPLACEC jcl
 
//DRMPRIMC JOB
//******************************************************************
//* Purpose: Create replacement volumes for primary storage pools that
//*   use device class DISK.
//* Recovery administrator: Edit this section for your replacement
//*   volume names. New name must be unique, i.e. different from any
//*   original or other new name.
//******************************************************************
//* Replace TIVSMSERV.DSM1509.AR01 DISK 5.0M in ARCHIVEPOOL
//******************************************************************
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TIVSMSERV.DSM1509.AR01@)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TIVSMSERV.DSM1509.AR01@) LINEAR MB(5) -
        VOL(TIVSM01) )
/*
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TIVSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TIVSMSERV.DSM1509.AR01@'
//DSMAMENG  DD  DSN=TIVSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
//*
//* Replace TIVSMSERV.DSM1509.BK02 DISK 16.0M in BACKUPPOOL
//******************************************************************
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TIVSMSERV.DSM1509.BK02@)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TIVSMSERV.DSM1509.BK02@) LINEAR MB(16) -
        VOL(TIVSM01) )
/*
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TIVSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TIVSMSERV.DSM1509.BK02@'
//DSMAMENG  DD  DSN=TIVSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
//*
//* Replace TIVSMSERV.DSM1509.BK01X DISK 5.0M in BACKUPPOOL
//******************************************************************
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TIVSMSERV.DSM1509.BK01X@)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TIVSMSERV.DSM1509.BK01X@) LINEAR MB(5) -
        VOL(TIVSM01) )
/*
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TIVSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TIVSMSERV.DSM1509.BK01X@'
//DSMAMENG  DD  DSN=TIVSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
 
end PRIMVOL.REPLACEC jcl
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin PRIMVOL.REPLACE macro
 
 /* Purpose: Define replacement primary storage pool volumes for either:   */
 /*   1. Original volume in a storage pool whose device class was DISK.    */
 /*   2. Original volume in a storage pool with MAXSCRATCH=0.              */
 /*   3. Original volume in a storage pool and volume scratch=no.          */
 /* Recovery administrator: Edit this section for your replacement         */
 /*   volume names. New name must be unique, i.e. different from any       */
 /*   original or other new name.                                          */
 
 
   /* Replace TIVSMSERV.DSM1509.AR01 DISK 5.0M in ARCHIVEPOOL */
 def vol ARCHIVEPOOL TIVSMSERV.DSM1509.AR01@ acc=READW
 
   /* Replace TIVSMSERV.DSM1509.BK02 DISK 16.0M in BACKUPPOOL */
 def vol BACKUPPOOL TIVSMSERV.DSM1509.BK02@ acc=READW
 
   /* Replace TIVSMSERV.DSM1509.BK01X DISK 5.0M in BACKUPPOOL */
 def vol BACKUPPOOL TIVSMSERV.DSM1509.BK01X@ acc=READW
 
   /* Replace TIVSMSERV.DSM1509.BK03 FILES 4.0M in BACKUPPOOLF */
 def vol BACKUPPOOLF TIVSMSERV.DSM1509.BK03@ acc=READW
 
   /* Replace BACK4X COOL3494 0.0M in BACKUPPOOLT */
 def vol BACKUPPOOLT BACK4X@ acc=READW
 
end PRIMVOL.REPLACE macro
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 

Storage Pool Restore Stanza

STGPOOL.RESTORE
Contains a TSM macro to restore the primary storage pools. You can use it as a guide and execute the TSM administrative commands as needed from a command line or graphical user interface, or you can copy it to a file, modify it, and execute it.

This macro is invoked by the REXX EXEC RECOVERY.NMODE.

Figure 85. Storage Pool Restore Stanza


*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin STGPOOL.RESTORE macro
 
/* Purpose: Restore the primary storage pools from copy storage pool(s). */
/* Recovery Administrator: Delete entries for any primary storage pools  */
/*   that you do not want to restore.                                    */
 
 restore stgp ARCHIVEPOOL
 restore stgp BACKUPPOOL
 restore stgp BACKUPPOOLF
 restore stgp BACKUPPOOLT
 restore stgp SPACEMGPOOL
 
end STGPOOL.RESTORE macro
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 

Configuration Stanzas

VOLHIST.FILE
Contains a copy of the server volume history information that existed at the time PREPARE was run. The volume history file is very important to server recovery because the DSMSERV RESTORE DB command uses the volume history file to determine what volumes are required to restore the database. This stanza is referenced by the REXX EXEC RECOVERY.DRMODE.

The following rules are used to determine where the volume history file is placed at restore time:

DEVCONF.FILE
Contains a copy of the server device configuration information that existed at the time PREPARE was run. The device configuration file is very important to server recovery because the DSMSERV RESTORE DB command uses this data to read the database backup volumes. This stanza is referenced by the REXX EXEC RECOVERY.DRMODE.

The following rules are used to determine where the device configuration file is placed at restore time:

SERVOPT.FILE
Contains a copy of the server options file used when the server was started. The server options file sets various server operating characteristics.

This stanza is referenced by the REXX EXEC RECOVERY.DRMODE.

Figure 86. Configuration Stanzas


*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin VOLHIST.FILE
********************************************************************************
*               Tivoli Storage Manager Sequential Volume Usage
*                                     Updated 09/03/1999 12:01:55
*     Operation         Volume   Backup Backup Volume Device     Volume
*     Date/Time          Type    Series Oper.   Seq   Class Name Name
********************************************************************************
* Location for volume DBTP01 is 'IRONVAULT'
 1999/06/01 12:00:53  BACKUPFULL      1      0      1 LIB3494    DBTP01
 1999/06/02 12:01:09  STGNEW          0      0      0 FILES      TSMSERV.DSM1509.BK01
* Location for volume DBTP02 is: 'IRONVAULT'
 1999/06/02 12:01:23  BACKUPFULL      2      0      1 LIB3494    DBTP02
 1999/09/03 12:00:46  STGNEW          0      0      0 FILES      TSMSERV.DSM1509.BK02
* Location for volume DBTP03 is: 'HsiaoVan'
 1999/09/03 12:01:04  BACKUPINCR      2      1      1 LIB3494    DBTP03
 1999/08/12 17:53:29  STGNEW          0      0      0 LIB3494    DBTP99
 1999/08/12 17:53:30  STGNEW          0      0      0 FILES      TSMSERV.DSM1509.BK88
 1999/08/12 17:53:32  STGNEW          0      0      0 FILES      TSMSERV.DSM1509.BK77
 1999/08/12 17:53:33  STGNEW          0      0      0 FILESSM    TSMSERV.DSM1509.BK55
 
end VOLHIST.FILE
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin DEVCONF.FILE
 
/* Tivoli Storage Manager Device Configuration */
DEFINE DEVCLASS COOL3494 DEVTYPE=CART FORMAT=DRIVE MOUNTLIMIT=1 MOUNTWAIT60 MOUNT
DEFINE DEVCLASS FILES DEVTYPE=FILE MAXCAPACITY=4096K MOUNTLIMIT=2 DIRECTORY=DRMT
DEFINE DEVCLASS FILESSM DEVTYPE=FILE MAXCAPACITY=100K MOUNTLIMIT=2 DIRECTORY=DRM
DEFINE DEVCLASS LIB3494 DEVTYPE=CART FORMAT=DRIVE MOUNTLIMIT=1 MOUNTWAIT5 MOUNTR
 
end DEVCONF.FILE
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin SERVOPT.FILE
 
* Server options file located in TSMSERV.DSM1509.DSMSERV.OPTX
TCPPort 1509
VOLUMEHISTORY TSMSERV.DSM1509.VOLHIST.TXTX
DEVCONFIG     TSMSERV.DSM1509.DEVCONF.TXTX
*The following option was added by PREPARE.
DISABLESCHEDS YES
 
end SERVOPT.FILE
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin LICENSE.INFO
 
                               Last License Audit: 09/30/1999 10:25:34
                          Registered Client Nodes: 1
                            Licensed Client Nodes: 51
Are Open Systems Environment clients registered ?: No
  Are Open Systems Environment clients licensed ?: No
                     Is space management in use ?: No
                   Is space management licensed ?: No
            Is disaster recovery manager in use ?: Yes
          Is disaster recovery manager licensed ?: Yes
    Are Server-to-Server Virtual Volumes in use ?: No
  Are Server-to-Server Virtual Volumes licensed ?: Yes
             Is Advanced Device Support required?: No
            Is Advanced Device Support licensed ?: No
                        Server License Compliance: Valid
 
end LICENSE.INFO
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 

Example SMS Version of the Disaster Recovery Plan File

Figure 87 shows the SMS versions of some of the stanzas.

Figure 87. Example of a Disaster Recovery Plan File (SMS Versions)


SMS versions of
 LOGDBVOL.CREATE
 
begin LOGDBVOL.CREATE jcl
//DRMLGDBC JOB
//******************************************************************
//* Purpose: Create log and database volumes.
//* Recovery Administrator: Run this to format server log
//* and database volumes.
//******************************************************************
//* Create database volume TSMSERV.DSM1509.DB01X 10M
//******************************************************************
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TSMSERV.DSM1509.DB01X)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TSMSERV.DSM1509.DB01X) LINEAR MB(10) -
        STORAGECLASS('SCLASS1') -
        MANAGEMENTCLASS('MCLASS1') -
        DATACLASS('DCLASS1')
/*
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TSMSERV.DSM1509.DB01X'
//DSMAMENG  DD  DSN=TSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
 
//* Create database volume DRMTEST.DSM1509.DB02X 10M
//******************************************************************
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TSMSERV.DSM1509.DB02X)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TSMSERV.DSM1509.DB02X) LINEAR MB(10) -
        STORAGECLASS('SCLASS1') -
        MANAGEMENTCLASS('MCLASS1') -
        DATACLASS('DCLASS1')
/*
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TSMSERV.DSM1509.DB02X'
//DSMAMENG  DD  DSN=TSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
//*
//* Create log volume TSMSERV.DSD1509.LG01X 10M
//******************************************************************
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TSMSERV.DSM1509.LG01X)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TSMSERV.DSM1509.LG01X) LINEAR MB(10) -
        STORAGECLASS('SCLASS1') -
        MANAGEMENTCLASS('MCLASS1') -
        DATACLASS('DCLASS1')
/*
 
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TSMSERV.DSM1509.LG01X'
//DSMAMENG  DD  DSN=TSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
//*
//* Create log volume TSMSERV.DSM1509.LG02X 10M
//******************************************************************
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TSMSERV.DSM1509.LG02X)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TSMSERV.DSM1509.LG02X) LINEAR MB(10) -
        STORAGECLASS('SCLASS1') -
        MANAGEMENTCLASS('MCLASS1') -
        DATACLASS('DCLASS1')
/*
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TSMSERV.DSM1509.LG02X'
//DSMAMENG  DD  DSN=TSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
 
end LOGDBVOL.CREATE jcl
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin LOGDBVOL.INSTALL jcl
 
//DRMINST JOB
//******************************************************************
//* Purpose: Install server database and log volumes.
//* Recovery Administrator: Run this to install the server database
//*   and log volumes.
//******************************************************************
//SERVDSKD EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=*
//SYSABEND DD DUMMY
//DD1      DD UNIT=3390,VOL=SER=DRMSC1,DISP=OLD
//SYSIN    DD *
 UNCATLG DSNAME=TSMSERV.DSM1509.DISKLOG
/*
//****************************************************************
//DELPARMS EXEC PGM=IDCAMS
//****************************************************************
//SYSPRINT DD  SYSOUT=*
//SYSIN    DD  *
 DELETE (TSMSERV.DSM1509.LOGDBVOL.PARMLOG)
 DELETE (TSMSERV.DSM1509.LOGDBVOL.PARMLOG) NOSCRATCH
 DELETE (TSMSERV.DSM1509.LOGDBVOL.PARMDB)
 DELETE (TSMSERV.DSM1509.LOGDBVOL.PARMDB) NOSCRATCH
 IF MAXCC <= 8 THEN SET MAXCC = 0
/*
//****************************************************************
//PARMLOG  EXEC PGM=IEBGENER            LOG PARAMETERS FOR INSTALL
//****************************************************************
//SYSIN    DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSUT2   DD DSN=TSMSERV.DSM1509.LOGDBVOL.PARMLOG,
//         DISP=(,CATLG,DELETE),
//         SPACE=(TRK,(1,1)),
//         UNIT=SYSDA,
//         DCB=(RECFM=FB,LRECL=80,BLKSIZE=6160)
//SYSUT1   DD *
TSMSERV.DSM1509.LG01X
TSMSERV.DSM1509.LG02X
/*
//****************************************************************
//PARMDB   EXEC PGM=IEBGENER             DB PARAMETERS FOR INSTALL
//****************************************************************
//SYSIN    DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSUT2   DD DSN=TSMSERV.DSM1509.LOGDBVOL.PARMDB,
//         DISP=(,CATLG,DELETE),
//         SPACE=(TRK,(1,1)),
//         UNIT=SYSDA,
//         DCB=(RECFM=FB,LRECL=80,BLKSIZE=6160)
//SYSUT1   DD *
TSMSERV.DSM1509.DB01X
TSMSERV.DSM1509.DB02X
/*
//***************************************************************/
//SERVER  EXEC PGM=DSMSERV,DYNAMNBR=300,
//***************************************************************/
// PARM='/INSTALL 2 FILE:TSMSERV.DSM1509.LOGDBVOL.PARMLOG
//             2 FILE:TSMSERV.DSM1509.LOGDBVOL.PARMDB'
//DSMAMENG DD DSN=TSMSERV.SANRMSG(ANRMENU),DISP=SHR
//***************************************************************/
//*  The Disk Log data set is allocated and created as a   */
//*  result of this job.  The data sets identified in the PARM  */
//*  field of the EXEC statement WILL be (re-)formatted and     */
//*  if they were previously used, the existing information will*/
//*  be lost.  DO NOT execute this job unless it is absolutely  */
//*  necessary.  It must not be used to UPGRADE a release 1     */
//*  server environment to Version 2.                           */
//***************************************************************/
//DSK      DD DSN=TSMSERV.DSM1509.DISKLOG,DISP=(NEW,CATLG),
//            SPACE=(TRK,(1,1)),
//            STORCLAS=SCLASS1,
//            MGMTCLAS=MCLASS1,
//            DATACLAS=DCLASS1,
//            DCB=(RECFM=FB,BLKSIZE=800,LRECL=80)
//SYSPRINT DD SYSOUT=*
//SYSTERM  DD SYSOUT=*
 
end LOGDBVOL.INSTALL jcl
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
begin PRIMVOL.REPLACEC jcl
 
//DRMPRIMC JOB
//******************************************************************
//* Purpose: Create replacement volumes for primary storage pools that
//*   use device class DISK.
//* Recovery administrator: Edit this section for your replacement
//*   volume names.  New name must be unique, that is, different from any
//*   original or other new name.
//******************************************************************
//* Replace TSMSERV.DSM1509.AR01 DISK 5.0M in ARCHIVEPOOL
//******************************************************************
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TSMSERV.DSM1509.AR01@)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TSMSERV.DSM1509.AR01@) LINEAR MB(5) -
        STORAGECLASS('SCLASS1') -
        MANAGEMENTCLASS('MCLASS1') -
        DATACLASS('DCLASS1')
/*
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TSMSERV.DSM1509.AR01@'
//DSMAMENG  DD  DSN=TSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
/*
//* Replace TSMSERV.DSM1509.BK02 DISK 16.0M in BACKUPPOOL
//******************************************************************
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TSMSERV.DSM1509.BK02@)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TSMSERV.DSM1509.BK02@) LINEAR MB(16) -
        STORAGECLASS('SCLASS1') -
        MANAGEMENTCLASS('MCLASS1') -
        DATACLASS('DCLASS1')
/*
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TSMSERV.DSM1509.BK02@'
//DSMAMENG  DD  DSN=TSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
//*
//* Replace TSMSERV.DSM1509.BK01X DISK 5.0M in BACKUPPOOL
//******************************************************************
//* Allocate the VSAM data set
//******************************************************************
//ALLOCAT  EXEC PGM=IDCAMS
//SYSPRINT  DD  SYSOUT=*
//SYSIN     DD  *
 DELETE (TSMSERV.DSM1509.BK01X@)  CLUSTER PURGE
 IF LASTCC = 8 THEN SET MAXCC = 0
 DEFINE CLUSTER( NAME(TSMSERV.DSM1509.BK01X@) LINEAR MB(5) -
        STORAGECLASS('SCLASS1') -
        MANAGEMENTCLASS('MCLASS1') -
        DATACLASS('DCLASS1')
/*
//******************************************************************
//* Pre-format the data set before defining it to the Server
//*   Note:  This step will not be executed if the ALLOCAT step fails.
//******************************************************************
//TSMFMT  EXEC PGM=DSMFMT,DYNAMNBR=300,COND=(0,NE,ALLOCAT),
//         PARM='/TSMSERV.DSM1509.BK01X@'
//DSMAMENG  DD  DSN=TSMSERV.SANRMSG(ANRMENU),DISP=SHR
//SYSPRINT  DD  SYSOUT=*
//SYSTERM   DD  SYSOUT=*
 
end PRIMVOL.REPLACEC jcl
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 

 


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]