/RECOVER Command: ADD >>-+-/RECOVER-+--ADD--+----------------------------+------------> '-/REC-----' '-+-RCVTOKEN-+--recoveryname-' '-RCK------' .-OFFLINE---. >--+-----------+--+---------+--+-------------------------+------> +-STAGLOBAL-+ +-USEDBDS-+ '-SMSOPTS--+------------+-' '-STALOCAL--' '-USEAREA-' '-optionname-' .----------. V | >--+-AREA----areaname-+-------+-------------------------------->< | .-----------. | | V | | +-CAGROUP----groupname-+---+ | .--------. | | V | | +-DB----dbname-+-----------+ | .----------------. | | V | | +-DBDS----dbname--ddname-+-+ | .-----------. | | V | | +-DBDSGRP----groupname-+---+ | .-----------. | | V | | '-RECOVGRP----groupname-+--'
/RECOVER Command: REMOVE >>-+-/RECOVER-+--REMOVE--+-RCVTOKEN-+--recoveryname-------------> '-/REC-----' '-RCK------' >--+---ALLENTRIES-------------+-------------------------------->< | .----------. | | V | | +-AREA----areaname-+-------+ | .-----------. | | V | | +-CAGRP----groupname-+-----+ | .--------. | | V | | +-DB----dbname-+-----------+ | .----------------. | | V | | +-DBDS----dbname--ddname-+-+ | .-----------. | | V | | +-DBDSGRP----groupname-+---+ | .-----------. | | V | | '-RECOVGRP----groupname-+--'
|/RECOVER Command: START | |>>-+-/RECOVER-+--START--+-RCVTOKEN-+--recoveryname--------------> | '-/REC-----' '-RCK------' | | .-ERRORABORT-. |>--+------------+--+------------+--+--------+-------------------> | '-ERRORCONT--' '-READNUM--n-' '-VERIFY-' | | .-OFFLINE---. |>--+-----------+--+--------------------------------------------+->< | +-STAGLOBAL-+ '-RCVTIME--time-stamp--+-------------------+-' | '-STALOCAL--' '-PITR--+---------+-' | '-NOCHECK-' |
|/RECOVER Command: STOP through TERMINATE | |>>-+-/RECOVER-+-+-STOP--+-ALLENTRIES-+--+------+-+------------->< | '-/REC-----' | '-ALLENT-----' '-SAVE-' | | '-TERMINATE----------------------' |
Table 140 lists the environments (DB/DC, DBCTL, and DCCTL) from which the command and keywords can be issued.
Command / Keywords | DB/DC | DBCTL | DCCTL |
---|---|---|---|
/RECOVER | X | X | |
ADD | X | X | |
ALLENTRIES | X | X | |
AREA | X | X | |
CAGROUP | X | X | |
DB | X | X | |
DBDS | X | X | |
DBDSGRP | X | X | |
ERRORABORT | X | X | |
ERRORCONT | X | X | |
NOCHECK | X | X | |
OFFLINE | X | X | |
PITR | X | X | |
RCVTIME | X | X | |
RCVTOKEN | X | X | |
READNUM | X | X | |
RECOVGRP | X | X | |
REMOVE | X | X | |
SMSOPTS | X | X | |
STAGLOBAL | X | X | |
STALOCAL | X | X | |
START | X | X | |
STOP | X | X | |
USEAREA | X | X | |
USEDBDS | X | X | |
|VERIFY | X | X |
/RECOVER commands are used with the recovery list of database data sets and areas.
In an IMSplex, the /RECOVER command initiates the operation of the Database Recovery facility. OM sends the /RECOVER command to one IMS.
The /RECOVER ADD command is used to add database data sets and areas to a list (recovery list) of database data sets and areas to be recovered using the Online Recovery Service. The database data sets and areas can be specified as database data sets, areas, databases, or groups.
|Successful completion of a /RECOVER ADD command results in the specified database data sets and areas being |added to a recovery list. Database data sets and areas can be added to a recovery |list by specifying one or more database data sets, databases, change |accumulation groups (CAGROUP), database data set groups (DBDSGRP), or recovery |groups (RECOVGRP). If a database or group is specified, all database data sets |and areas making up the database or group are added to a recovery |list. If the a specified database is a master database for a partitioned HALDB, |all database data sets from all partitions that make up the HALDB are |added to a recovery list. All groups (including databases) are defined |in DBRC.
|Database data sets and areas must be registered with |DBRC to be recovered with the IMS Recovery Services. If the database data set, |area, or group name is not known to DBRC, it is not added to a recovery |list and a message is issued.
If a database data set or area specified in a /RECOVER ADD command (individually or as part of a group) is already on a recovery list, processing for the duplicate is ignored and a message is issued. Other database data sets and areas that are not duplicates are processed normally.
This command can be issued in IMS DBCTL and IMS DB/DC environments.
Examples of using the /RECOVER ADD command are shown in:
The IMS system performing the recovery has EXCLUSIVE authorization |of the database to perform the recovery. The OFFLINE option allows |the IMS system to unauthorize the databases at the completion of |the recovery without issuing a START command. This will leave the databases available for processing. |If a PITR option has been used in a recovery, the database data |set in the RECON is IMAGE COPY NEEDED.
|This parameter determines whether or not DRF will restore the |image copy for a DBDS before applying log updates.
|Caution: This option is to be used with |extreme care. DELCAT is required if SMSOPTS is supplied. This option allows you |to recover from a scenario where entire volumes are lost but the |catalog entries remain. When this option is specified, SMS deletes |the prior catalog entries for the database data sets and areas being |restored as part of recovery. Refer to the DFSMSdss Storage Administration Reference manual before |using this option. Read the caution under the DELETECATALOGENTRY |option of the RESTORE command.
|For additional information on recovery groups, see the IMS Version 9: DBRC Guide and Reference and the IMS Version 9: Administration Guide: Database Manager.
| ||A /RECOVER REMOVE command removes some or all database data sets and areas from the recovery |list. It can only be issued prior to issuing the /RECOVER START command. Use the /RECOVER STOP command to remove entries after recovery has started.
If /RECOVER REMOVE is issued with one or more databases or groups, all database data sets and areas that are part of the database or group specified are removed from the recovery list. If a /RECOVER REMOVE command results in the removal of every data set or area entry from the recovery list, the recovery list is eliminated.
This command executes in IMS DBCTL and IMS DB/DC environments.
Examples of using the /RECOVER REMOVE command are shown in:
|Use the /RECOVER START command to start the recovery process for all the members |of a recovery list, which includes performing the following tasks:
|Only one /RECOVER START command is allowed to execute in one IMS at a time. If DRF |is to run in conjunction with multiple IMSs simultaneously, ensure |that log contention situations do not occur. To avoid log contention |situations, ensure that recovery instances that would read the same |log data sets do not execute simultaneously in multiple IMSs.
|You can choose to automatically /START any or all members of the recovery list after successful |completion of recovery, either on all IMS systems on which they |are defined or just the one where the recovery is executed.
|If ERRORABORT is in effect, the recovery list will |not start until all the DBDSs in the list can be authorized for |recovery. This is not true if the ERRORCONT parameter is specified |on the /RECOVER START command. Instead, the recovery will continue.
|If coordinated online change removes from the system |any database data set or area that has been previously added to |a recovery list, message DFS4266I with reason code NOT FOUND will be issued after the /RECOVER START command for that recovery list is entered.
Examples of using the /RECOVER START command are shown in:
For information about time stamp recovery characteristics, see IMS Version 9: Utilities Reference: Database and Transaction Manager.
Additionally, the timestamp must by surrounded by single quotation marks |('). For example: |
|/RECOVER START RCVTOKEN R1 RCVTIME '022671213156'
|A /RECOVER STOP command stops recovery for all database data sets and areas on the recovery |list. The command can only be issued for a recovery list that has |had /RECOVER START issued against it. If the /RECOVER STOP is issued before the /RECOVER START command, it is rejected. If it is issued after the /RECOVER START command, recovery is stopped for all database data sets in |the recovery list. After a /RECOVER STOP command successfully processes, subsequent /RECOVER STOP commands are rejected.
If /RECOVER STOP ALLENT is issued, all recovery processing for the affected recovery list halts, and the existing recovery list is deleted.
Examples of using the /RECOVER STOP command are shown in:
|The TERMINATE option will delete all lists in BEING |BUILT status and terminate the DRS address space.
|If a recovery is in progress the recovery will ignore |the /RECOVER TERMINATE command and continue to process. When it completes, another /RECOVER TERMINATE command is required. It will not take effect automatically. |If you would like to force DRF down while a recovery is running, |you must issue the /RECOVER STOP ALLENT command first. This will stop the recovery and then you can |enter the /RECOVER TERMINATE command to terminate the DRF address space.
An example of using the /RECOVER TERMINATE command is shown in Example for /RECOVER TERMINATE Command
The COMMAND IN PROGRESS message is issued for /RECOVER ADD commands but is not shown in the following examples.
|In this example, a /RECOVER ADD STALOCAL command is issued for full function database data sets. Following a |successful recovery of the database data sets, the database is started |on the IMS that runs the recovery. |
|/REC ADD STALOCAL DBDS DBNAME1 DDNAME1 DBNAME2 DDNAME2 |DFS4299I FRD6011I THE FOLLOWING ENTRIES ARE ADDED TO THE RECOVERY LIST: |DFS4299I FRD6003I DBNAME1 DDNAME1 |DFS4299I FRD6003I DBNAME2 DDNAME2
In this example, a /RECOVER ADD command is issued for full function database data sets. One of the database data sets is not registered in RECON and is rejected.
|/RECOVER ADD DBDS DBNAME1 DDNAME1 DBNAME1 DDNAME2 |DFS4299I FRD6011I THE FOLLOWING ENTRIES ARE ADDED TO THE RECOVERY LIST: |DFS4299I FRD6003I DBNAME1 DDNAME1 |DFS4299I FRD6010W UNABLE TO ADD TO RECOVERY LIST, NOT FOUND IN RECON, DBNAME2 DDNAME2
In this example, a /RECOVER ADD command is issued for full function database data set. The database that database data set belongs to is still authorized to two IMSs.
/RECOVER ADD DBDS DBNAME1 DDNAME1 DFS4299I FRD6011I THE FOLLOWING ENTRIES ARE ADDED TO THE RECOVERY LIST: DFS4299I FRD6003I DBNAME1 DDNAME1 DFS4299I FRD6003I DBNAME1 DDNAME1 AUTHORIZED BY IMS1 DFS4299I FRD6003I DBNAME1 DDNAME1 AUTHORIZED BY IMS2
Databases can be specified as a whole with the /RECOVER ADD DB command. In this example, a full function database and a Fast Path database have all their database data sets and areas, respectively, added to the recovery list.
/REC ADD DB FFDB1 FPDB2 DFS4299I FRD6011I THE FOLLOWING ENTRIES ARE ADDED TO THE RECOVERY LIST: DFS4299I FRD6003I FFDB1 DDNAME1 DFS4299I FRD6003I FFDB1 DDNAME2 DFS4299I FRD6003I DBAREA3 DDAREA3 DFS4299I FRD6003I DBAREA4 DDAREA4
If more than one DATAGROUP is specified, the group names must be separated by at least one blank space. In this example, a /RECOVER ADD command is issued for two database groups.
/REC ADD DATAGROUP GRPNAME1 GRPNAME2 DFS4299I FRD6011I THE FOLLOWING ENTRIES ARE ADDED TO THE RECOVERY LIST: DFS4299I FRD6003I DBNAME3 DDNAME3 DFS4299I FRD6003I DBNAME4 DDAREA4 DFS4299I FRD6003I DBNAME5 DDNAME5 DFS4299I FRD6003I DBNAME6 DDAREA6 DFS4299I FRD6003I DBNAME7 DDNAME7 DFS4299I FRD6003I DBNAME8 DDAREA8
If one or more RECOVGRP is specified, the group names must be separated by at least one blank. In this example, a /RECOVER ADD command is issued for two recovery groups.
/REC ADD RECOVGRP GRPNAME1 GRPNAME2 DFS4299I FRD6011I THE FOLLOWING ENTRIES ARE ADDED TO THE RECOVERY LIST: DFS4299I FRD6003I DBNAMEA DDNAMEA DFS4299I FRD6003I DBNAMEB DDAREAB DFS4299I FRD6003I DBNAMEC DDNAMEC DFS4299I FRD6003I DBNAMED DDAREAD DFS4299I FRD6003I DBNAMEE DDNAMEE DFS4299I FRD6003I DBNAMEF DDAREAF
The command IN PROGRESS message is issued for /RECOVER commands but is not shown in these examples.
|As with the /RECOVER ADD command, full function database data sets and Fast Path areas are specified |with the /RECOVER REMOVE DBDS command. With the DBDS option, each full function database data set must |be specified as an ordered pair. Each element must be separated |by at least one blank space. The first element of the pair is the |database name. The second element is the DDNAME. In this example, |a /RECOVER REMOVE command is issued for a single full function database data set. |
|/RECOVER REMOVE RCVTOKEN DFS00001 DBDS DBNAME1 DDNAME1 | |DFS4299I FRD6016I THE FOLLOWING ENTRIES WERE REMOVED FROM THE RECOVERY LIST: |DFS4299I FRD6003I DBNAME1 DDNAME1
If more than one full function database data set is specified in a /RECOVER REMOVE DBDS command, each dbname/ddname ordered pair must be separated by at least one blank space.
/RECOVER REMOVE RCVTOKEN DFS00001 DBDS DBNAME1 DDNAME1 DBNAME3 DDNAME3 DFS4299I FRD6016I THE FOLLOWING ENTRIES WERE REMOVED FROM THE RECOVERY LIST: DFS4299I FRD6003I DBNAME1 DDNAME1 DFS4299I FRD6003I DBNAME3 DDNAME3
In this example, a /RECOVER REMOVE command is issued for a single Fast Path area that was not added to the recovery list.
|/REC REMOVE RCVTOKEN DFS00001 AREA DDAREA1 | |DFS4299I FRD6018W UNABLE TO REMOVE AREA DDAREA1: NOT IN RECOVERY LIST
In this example, a /RECOVER REMOVE command is issued for a full function database and Fast Path database. All full function database data sets and Fast Path areas making up the two databases are removed from the recovery list.
/REC REMOVE RCVTOKEN DFS00001 DB FFDB1 FFDB2 DFS4299I FRD6016I THE FOLLOWING ENTRIES WERE REMOVED FROM THE RECOVERY LIST: DFS4299I FRD6003I FFDB1 DDNAME1 DFS4299I FRD6003I FFDB1 DDNAME2 DFS4299I FRD6003I DBAREA3 DDAREA3 DFS4299I FRD6003I DBAREA4 DDAREA4
In this example, a /RECOVER REMOVE command is issued to stop recovery for the entire recovery list.
/REC REMOVE RCVTOKEN DFS00001 ALLENT DFS4299I FRD6016I THE FOLLOWING ENTRIES WERE REMOVED FROM THE RECOVERY LIST: DFS4299I FRD6003I DBNAME1 DDNAME1 DFS4299I FRD6003I DBNAME2 DDNAME2 DFS4299I FRD6003I DBAREA1 DDAREA1 DFS4299I FRD6003I DBNAME3 DDNAME3 DFS4299I FRD6003I DBAREA4 DDAREA4 DFS4299I FRD6003I DBNAME5 DDNAME5 DFS4299I FRD6003I DBAREA6 DDAREA6 DFS4299I FRD6003I DBAREA7 DDAREA7 DFS4299I FRD6003I DBAREA8 DDAREA8 DFS4299I FRD6017I RECOVERY LIST IS NOW EMPTY
The command IN PROGRESS message is issued for /RECOVER commands but is not shown in the following examples.
In this example, /RECOVER START initiates recovery for the database data sets and areas from previous examples. Recovery continues until it completes or until one of the database data sets or areas is operable.
|/REC START RCVTOKEN RCVTKN1 ERRORCONT |DFS4299I FRD6021I RECOVERY STARTED FOR: |DFS4299I FRD6003I DBNAME1 DDNAME1 |DFS4299I FRD6003I DBNAME2 DDNAME2 |DFS4299I FRD6003I DBAREA1 DDAREA1 |DFS4299I FRD6003I DBNAME3 DDNAME3 |DFS4299I FRD6003I DBAREA4 DDAREA4 |DFS4299I FRD6003I DBAREA5 DDAREA5 |DFS4299I FRD6003I DBAREA6 DDAREA6 |DFS4299I FRD6003I DBNAME7 DDNAME7 |DFS4299I FRD6003I DBAREA8 DDAREA8
In this example, /RECOVER START RCVTOKEN initiates recovery for the database data sets and areas owned by the recovery token RCVTKN2.
/REC START RCVTOKEN RCVTKN2 DFS4299I FRD6021I RECOVERY STARTED FOR: DFS4299I FRD6003I DBNAME1 DDNAME1 DFS4299I FRD6003I DBNAME2 DDNAME2 DFS4299I FRD6003I DBAREA1 DDAREA1 DFS4299I FRD6003I DBNAME3 DDNAME3 DFS4299I FRD6003I DBAREA4 DDAREA4 DFS4299I FRD6003I DBAREA5 DDAREA5 DFS4299I FRD6003I DBAREA6 DDAREA6 DFS4299I FRD6003I DBNAME7 DDNAME7 DFS4299I FRD6003I DBAREA8 DDAREA8
In this example, /RECOVER START RCVTOKEN OFFLINE READNUM 6 initiates recovery for the database data sets and areas from previous examples. Recovery will not continue if any error is detected for any member of the recovery list. The database data sets and areas remain offline after recovery completes.
/RECOVER START RCVTOKEN RCVTKN2 OFFLINE READNUM 6 DFS4299I FRD6021I RECOVERY STARTED FOR: DFS4299I FRD6003I DBNAME1 DDNAME1 DFS4299I FRD6003I DBNAME2 DDNAME2 DFS4299I FRD6003I DBAREA1 DDAREA1 DFS4299I FRD6003I DBNAME3 DDNAME3 DFS4299I FRD6003I DBAREA4 DDAREA4 DFS4299I FRD6003I DBAREA5 DDAREA5 DFS4299I FRD6003I DBAREA6 DDAREA6 DFS4299I FRD6003I DBNAME7 DDNAME7 DFS4299I FRD6003I DBAREA8 DDAREA8
In this example, /RECOVER START RCVTOKEN ERRORCONT RCVTIME time-stamp is issued. TSR continues until it completes or until one of the database data sets or areas undergoing recovery encounters an error. After recovery completes, a message is issued listing each database data set and area successfully recovered.
|/REC START RCVTOKEN RCVTKN2 ERRORABORT RCVTIME '020011015257' NOCHECK |DFS4299I FRD6021I RECOVERY STARTED FOR RCVTKN2, ERRORABORT, TSR |DFS4299I FRD6003I DBNAME1 DDNAME1 |DFS4299I FRD6003I DBNAME2 DDNAME2 |DFS4299I FRD6003I DBAREA1 DDAREA1 |DFS4299I FRD6003I DBNAME3 DDNAME3 |DFS4299I FRD6003I DBAREA4 DDAREA4 |DFS4299I FRD6003I DBAREA5 DDAREA5 |DFS4299I FRD6003I DBAREA6 DDAREA6 |DFS4299I FRD6003I DBNAME7 DDNAME7 |DFS4299I FRD6003I DBAREA8 DDAREA8 | ... |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBNAME1 DDNAME1 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBNAME2 DDNAME2 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBAREA1 DDAREA1 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBNAME3 DDNAME3 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBAREA4 DDAREA4 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBAREA5 DDAREA5 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBAREA6 DDAREA6 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBNAME7 DDNAME7 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBAREA8 DDAREA8 |DFS4277I RECOVERY COMPLETE FOR: RCVTKN2
In this example, /RECOVER START RCVTOKEN RCVTIMEtime-stamp PITR is issued. Point-in-time recovery will continue until it completes or until one of the database data sets encounters an error. A message is issued listing the database data sets and areas that were not in the recovery list, but might need recovery using point-in-time recovery.
|/REC START RCVTOKEN RCVTKN2 RCVTIME '020011015257' PITR |DFS4299I FRD6021I RECOVERY STARTED FOR RCVTKN2, ERRORCONT, PITR |DFS4299I FRD6003I DBNAME1 DDNAME1 |DFS4299I FRD6003I DBNAME2 DDNAME2 |DFS4299I FRD6003I DBAREA1 DDAREA1 |DFS4299I FRD6003I DBNAME3 DDNAME3 |DFS4299I FRD6003I DBAREA4 DDAREA4 |DFS4299I FRD6003I DBAREA5 DDAREA5 |DFS4299I FRD6003I DBAREA6 DDAREA6 |DFS4299I FRD6003I DBNAME7 DDNAME7 |DFS4299I FRD6003I DBAREA8 DDAREA8 | ... |DFS4299I FRD6024A GROUP MEMBER DBNAME9 DDNAME9 NOT IN RECOVERY LIST: MEMBER OF A GROUP |DFS4299I FRD6024A GROUP MEMBER DBNAMEA DDNAMEA NOT IN RECOVERY LIST: MEMBER OF A GROUP |DFS4299I FRD6024A GROUP MEMBER DBAREAB DDAREAB NOT IN RECOVERY LIST: MEMBER OF A GROUP |DFS4299I FRD6024A GROUP MEMBER DBNAMEC DDNAMEC NOT IN RECOVERY LIST: MEMBER OF A GROUP | ... |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBNAME1 DDNAME1 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBNAME2 DDNAME2 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBAREA1 DDAREA1 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBNAME3 DDNAME3 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBAREA4 DDAREA4 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBAREA5 DDAREA5 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBAREA6 DDAREA6 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBNAME7 DDNAME7 |DFS4299I FRD4031I DATASET RESTORE COMPLETE: DBAREA8 DDAREA8 |DFS4277I RECOVERY COMPLETE FOR: RCVTKN2
The COMMAND IN PROGRESS message is issued for /RECOVER commands but is not shown in the following examples.
In this example, a /RECOVER STOP command is issued to stop recovery for the entire recovery list.
|/REC STOP ALLENT |DFS4299I FRD6032I THE FOLLOWING ENTRIES WILL HAVE RECOVERY STOPPED: |DFS4299I FRD6003I DBNAME1 DDNAME1 |DFS4299I FRD6003I DBNAME2 DDNAME2 |DFS4299I FRD6003I DBAREA1 DDAREA1 |DFS4299I FRD6003I DBNAME3 DDNAME3 |DFS4299I FRD6003I DBAREA4 DDAREA4 |DFS4299I FRD6003I DBNAME5 DDNAME5 |DFS4299I FRD6003I DBAREA6 DDAREA6 |DFS4299I FRD6003I DBAREA7 DDAREA7 |DFS4299I FRD6003I DBAREA8 DDAREA8 |DFS4299I FRD6033I ALL ENTRIES IN RECOVERY LIST, ARE BEING STOPPED
In this example, a /RECOVER STOP ALLENT SAVE is issued after a /RECOVER START command.
|/REC STOP ALLENT SAVE |DFS4299I FRD6032I THE FOLLOWING ENTRIES WILL HAVE RECOVERY STOPPED: |DFS4299I FRD6003I DBNAME1 DDNAME1
In this example, a /RECOVER STOP ALLENT command is issued with no recovery in progress.
|/REC STOP ALLENT |DFS4299I FRD6031E UNABLE TO STOP ALLENT: RECOVERY NOT IN PROGRESS
|In this example, a /RECOVER TERMINATE command is issued with no recovery in progress. |
|/RECOVER TERMINATE
|DFS4299I FRD4202I DATABASE RECOVERY DATA MANAGER TERMINATION COMPLETE