Restore processing has been enhanced to allow start of journaling to be deferred for database files, data areas, data queues, and libraries when the object or library is restored prior to the journal. Once the journal is restored, the object that deferred start of journaling will now reestablish and resume journaling.
- GO RESTORE Option 21
- Start Recovery using BRM (STRRCYBRM)
Note: If you were using the Recovery Order List to self-manage the order of a BRMS restore to compensate for journal dependencies, that control is no longer needed. Consider changing OVERRIDE(*YES) and RCYORDLST(<user-specified-restore-order>) to RCYORDLST(*NONE)
Journal restore considerations:
- This enhancement applies to database file, data area, data queue or library objects or access paths that were explicitly journaled.
- If system-managed access-path protection (SMAPP) is being used, the access paths being protected by the system are implicitly journaled and not relevant to this topic.
Journaling for an object will resume when the missing journal is restored or explicitly recreated followed by a call to RSTDFROBJ using the appropriate DFRID.
A new system file, QADBRSDFRJ, will be used to track objects that defer start journaling. The file will be created into the QRECOVERY library for SYSBAS and the QRCYnnnnn library for independent ASPs (IASP). One record will be inserted into the file for each object that defers starting journaling.
The objects which defer start journaling will be created. Since the objects are restored prior to resumption of journaling for the object, the restore and create journal entries for these objects will not be generated.
If a Defer ID is specified when restoring an object into a journaled library that has a *RESTORE inherit rule defined and the object was journaled at save time and that journal does not exist on the system, the start of journaling will be deferred for the object to the journal the object was journaled to when it was saved.
If a Defer ID is specified when restoring an object into a library that contains a data area named QDFTJRN that has a *RSTOVRJRN rule defined, the object will attempt to automatically start journaling to the journal specified in the QDFTJRN data area, regardless of whether or not the object was journaled when it was saved or the journal target at save time. If the journal specified in the QDFTJRN data area does not exist, the start of journaling will be deferred.
If a Defer ID is specified when restoring an object into a journaled library that has a *RSTOVRJRN inherit rule defined, the object will attempt to automatically start journaling to the journal being used by the library, regardless of whether or not the object was journaled when it was saved or the object's journal target at save time. For this scenario, the journal for the library exists and therefore deferred journaling does not apply.
Figure 2. STRRCYBRM command
11 April 2021