VMS Help  —  RMU72  Restore  Only Root, Examples
    Example 1

    To prevent corruption of your databases, check your CSN and TSN
    values and set them to zero based on when they approach the
    maximum. First, enter an RMU Dump command to display the next
    CSN and next TSN values:

    $ RMU/DUMP/HEADER=(SEQUENCE_NUMBERS) MF_PERSONNEL
       .
       .
       .
        Sequence Numbers...
          - Transaction sequence number
            Next number is 0:256
            Group size is 0:32
          - Commit sequence number
            Next number is 0:256
            Group size is 0:32

    If the next CSN and the next TSN values are approaching the
    maximum number allowed, you must perform the following operations
    to initialize all TSN and CSN values to the value zero in your
    database. The operation might take some time to execute as it
    writes to every page in the database.

    First, create a backup file for the database. Then restore
    the database and initialize the CSN and TSN values with the
    Initialize_Tsns qualifier. Then, enter an RMU Dump command again
    to examine the next CSN and next TSN values. This example shows
    that both values have been set to zero. If you displayed the
    database pages, you would also notice that all TSN and CSN values
    are set to zero.

    $ RMU/BACKUP MF_PERSONNEL MF_PER_124.RBF
    $ RMU/RESTORE/ONLY_ROOT /INITIALIZE_TSNS MF_PER_124.RBF
    $ RMU/DUMP/HEADER=(SEQUENCE_NUMBERS) MF_PERSONNEL
       .
       .
       .
        Sequence Numbers...
          - Transaction sequence number
            Next number is 0:0
            Group size is 0:32
          - Commit sequence number
            Next number is 0:0
            Group size is 0:32

    Example 2

    Perform the following to set the TSN and CSN values to a number
    that you select; a number that is greater than or equal to the
    next CSN and next TSN values. If the number you have selected
    is less than the next CSN and next TSN values recorded in the
    database header, you receive an error as follows:

    $ RMU/RESTORE/ONLY_ROOT/SET_TSN=(TSN=40,CSN=40)
    _$ MF_PERSONNEL.RBF
    %RMU-F-TSNLSSMIN, value (0:40) is less than minimum
     allowed value (0:224) for /SET_TSN=TSN
    %RMU-F-FTL_RSTR, Fatal error for RESTORE operation
     at 18-JUN-1997 16:59:19.32

    Enter a number equal to or greater than the next CSN and next TSN
    values recorded in the database header:

    $ RMU/RESTORE/ONLY_ROOT/SET_TSN=(TSN=274,CSN=274) -
    _$ MF_PERSONNEL.RBF

    Enter an RMU Dump command to see the next CSN and next TSN
    values:

    $ RMU/DUMP/HEADER=(SEQUENCE_NUMBERS) MF_PERSONNEL
       .
       .
       .
        Sequence Numbers...
          - Transaction sequence number
            Next number is 0:288
            Group size is 0:32
          - Commit sequence number
            Next number is 0:288
            Group size is 0:32
          - Database bind sequence number
            Next number is 0:288

    Example 3

    The following RMU Restore Only_Root command restores the database
    root file from the database backup file (.rbf) to another device:

    $ RMU/RESTORE/ONLY_ROOT/ROOT=DXXV9:[BIGLER.TESTING]MF_PERSONNEL -
    _$ MF_PERSONNEL_BACKUP.RBF

    The following DIRECTORY command confirms that the MF_
    PERSONNEL.RDB file was restored in the specified directory:

    $ DIRECTORY DXXV9:[BIGLER.TESTING]MF_PERSONNEL.RDB

    Directory DXXV9:[BIGLER.TESTING]

    MF_PERSONNEL.RDB;1   21-JAN-1991 14:37:36.87

    Total of 1 file.

    Example 4

    Use the File=file-spec qualifier to update the .rdb file with a
    storage area's new location. If you have moved a storage area to
    a new location, use the File qualifier to show its new location
    and the Snapshot qualifier to indicate the current version of
    the area's snapshot (.snp) file. Enter the following RMU commands
    to execute a series of operations that use the File and Snapshot
    qualifiers in a restore-only-root operation to update the .rdb
    file with new information since the database was last backed up.

    Back up the database file:

    $ RMU/BACKUP MF_PERSONNEL MFPERS_122.RBF.

    Move the area to another directory:

    $ RMU/MOVE_AREA MF_PERSONNEL JOBS -
    _$ /FILE=[BIGLER.MFTEST.TEST1]JOBS.RDA

    With the RMU Restore Only_Root command, give the area name, and
    specify both the storage area file specification and its new
    location. Also specify the snapshot (.snp) file with its correct
    version. Note that .snp file version numbers increment with the
    RMU Move_Area command.

    $ RMU/RESTORE/ONLY_ROOT MFPERS_122.RBF JOBS -
    _$ /FILE=[BIGLER.MFTEST.TEST1]JOBS.RDA -
    _$ /SNAPSHOT=(FILE=[BIGLER.V41MFTEST]JOBS.SNP;2)

    Display the .rdb file header and note that the file is correctly
    updated.

    The dump of the database root file lists these file
    specifications:

    $ RMU/DUMP/HEADER MF_PERSONNEL
    DXXV9:[BIGLER.MFTEST.TEST1]JOBS.RDA;1
    DXXV9:[BIGLER.MFTEST]JOBS.SNP;2

    Verify the .rdb file to be certain that it has been properly
    and completely updated relative to the files and their version
    numbers that comprise the database.

    $ RMU/VERIFY/ROOT MF_PERSONNEL

    Example 5

    The following command achieves the same results as the RMU
    Restore Only_Root command in Example 4, but uses an options file
    to specify the current location of the JOBS storage area and the
    associated .snp file.

    $ RMU/RESTORE/ONLY_ROOT MFPERS_122.RBF -
    _$ JOBS/OPTIONS=OPTIONS_FILE.OPT
    $ !
    $ TYPE OPTIONS_FILE.OPT
    JOBS /FILE=[BIGLER.V41MFTEST.TEST1]JOBS.RDA -
         /SNAPSHOT=(FILE=BIGLER.V41MFTEST]JOBS.SNP)

    Example 6

    The following example demonstrates the use of the Noset_Tsn
    qualifier and the Noupdate_Files qualifier to restore a database
    using by-area backup files. In addition, it demonstrates the
    automatic recovery feature of the RMU Restore command.

    $ !
    $ SET DEFAULT DISK1:[USER]
    $ !
    $ ! Create .aij files for the database. Because three .aij files are
    $ ! created, fixed-size after-image journaling will be used.
    $ !
    $ RMU/SET AFTER_JOURNAL/ENABLE/RESERVE=4     -
    _$ /ADD=(name=AIJ1, FILE=DISK2:[CORP]AIJ_ONE)   -
    _$ /ADD=(name=AIJ2, FILE=DISK2:[CORP]AIJ_TWO)   -
    _$ /ADD=(NAME=AIJ3, FILE=DISK2:[CORP]AIJ_THREE) -
    _$ MF_PERSONNEL
    %RMU-W-DOFULLBCK, full database backup should be done to
     ensure future recovery
    $ !
    $ !
    $ ! For the purposes of this example, assume the backup operation
    $ ! recommended in the preceding warning message is done, but
    $ ! that the time between this backup operation and the following
    $ ! operations is several months so that this backup file is too
    $ ! old to use in an efficient restore operation.
    $ !
    $ ! Update the DEPARTMENTS table.
    $ !
    $ SQL
    SQL> ATTACH 'FILENAME MF_PERSONNEL';
    SQL> --
    SQL> -- On Monday, insert a new row in the DEPARTMENTS table. The
    SQL> -- new row is stored in the DEPARTMENTS storage area.
    SQL> --
    SQL> INSERT INTO DEPARTMENTS
    cont>   (DEPARTMENT_CODE, DEPARTMENT_NAME, MANAGER_ID,
    cont>   BUDGET_PROJECTED, BUDGET_ACTUAL)
    cont>   VALUES ('WLNS', 'Wellness Center', '00188', 0, 0);
    1 row inserted
    SQL>
    SQL> COMMIT;
    SQL> DISCONNECT DEFAULT;
    SQL> EXIT
    $ !
    $ ! Perform a by-area backup operation, including half of the
    $ ! storage areas from the mf_personnel database.
    $ !
    $ RMU/BACKUP/INCLUDE=(RDB$SYSTEM, EMPIDS_LOW, EMPIDS_MID, -
    _$ EMPIDS_OVER, DEPARTMENTS) MF_PERSONNEL -
    _$ DISK3:[BACKUP]MONDAY_FULL.RBF
    %RMU-I-NOTALLARE, Not all areas will be included in
     this backup file
    $ !
    $ ! Update the SALARY_HISTORY table.
    $ !
    $ SQL
    SQL> ATTACH 'FILENAME MF_PERSONNEL';
    SQL> --
    SQL> -- On Tuesday, one row is updated in the
    SQL> -- SALARY_HISTORY storage area.
    SQL> --
    SQL> UPDATE SALARY_HISTORY
    cont>    SET SALARY_END ='20-JUL-1993 00:00:00.00'
    cont>    WHERE SALARY_START='14-JAN-1983 00:00:00.00'
    cont>    AND EMPLOYEE_ID = '00164';
    1 row updated
    SQL> COMMIT;
    SQL> DISCONNECT DEFAULT;
    SQL> EXIT
    $ !
    $ ! On Tuesday, back up the other half of the storage areas.
    $ !
    $ RMU/BACKUP/INCLUDE=(SALARY_HISTORY, JOBS, EMP_INFO, -
    _$ MF_PERS_SEGSTR, RDB$SYSTEM) MF_PERSONNEL -
    _$ DISK3:[BACKUP]TUESDAY_FULL.RBF
    %RMU-I-NOTALLARE, Not all areas will be included in this
     backup file
    $ !
    $ ! On Wednesday, perform additional updates.
    $ !
    $ SQL
    SQL> ATTACH 'FILENAME MF_PERSONNEL';
    SQL> --
    SQL> -- Update another row in the SALARY_HISTORY table:
    SQL>  UPDATE SALARY_HISTORY
    cont>     SET SALARY_START ='23-SEP-1991 00:00:00.00'
    cont>     WHERE SALARY_START='21-SEP-1981 00:00:00.00'
    cont>     AND EMPLOYEE_ID = '00164';
    1 row updated
    SQL> COMMIT;
    SQL> DISCONNECT DEFAULT;
    SQL> EXIT
    $ !
    $ ! Assume the database is lost on Wednesday.
    $ !
    $ ! Restore the database root from the latest full-area backup file.
    $ !
    $ RMU/RESTORE/ONLY_ROOT/NOUPDATE_FILES/NOSET_TSN -
    _$ DISK3:[BACKUP]TUESDAY_FULL.RBF/LOG
    %RMU-I-AIJRSTBEG, restoring after-image journal "state" information
    %RMU-I-AIJRSTJRN, restoring journal "AIJ1" information
    %RMU-I-AIJRSTSEQ, journal sequence number is "0"
    %RMU-I-AIJRSTSUC, journal "AIJ1" successfully restored from
     file "DISK2:[CORP]AIJ_ONE.AIJ;1"
    %RMU-I-AIJRSTJRN, restoring journal "AIJ2" information
    %RMU-I-AIJRSTNMD, journal has not yet been modified
    %RMU-I-AIJRSTSUC, journal "AIJ2" successfully restored from
     file "DISK2:[CORP]AIJ_TWO.AIJ;1"
    %RMU-I-AIJRSTJRN, restoring journal "AIJ3" information
    %RMU-I-AIJRSTNMD, journal has not yet been modified
    %RMU-I-AIJRSTSUC, journal "AIJ3" successfully restored from
     file "DISK2:[CORP]AIJ_THREE.AIJ;1"
    %RMU-I-AIJRSTEND, after-image journal "state" restoration complete
    %RMU-I-RESTXT_00, Restored root file
     DISK1:[USER]MF_PERSONNEL.RDB;1
    %RMU-I-AIJRECBEG, recovering after-image journal "state" information
    %RMU-I-AIJRSTAVL, 3 after-image journals available for use
    %RMU-I-AIJRSTMOD, 1 after-image journal marked as "modified"
    %RMU-I-LOGMODSTR,     activated after-image journal "AIJ2"
    %RMU-I-AIJISON, after-image journaling has been enabled
    %RMU-W-DOFULLBCK, full database backup should be done to
     ensure future recovery
    %RMU-I-AIJRECEND, after-image journal "state" recovery complete
    $ !
    $ ! Restore the database areas, starting with the most recent
    $ ! full-area backup file. (If the RDB$SYSTEM area is not in the
    $ ! most recent full-area backup file, however, it must be restored
    $ ! first.) Do not restore any area more than once.
    $ !
    $ ! Specify the Norecovery qualifier since there are additional
    $ ! backup files to apply.
    $ !
    $ RMU/RESTORE/AREA/NOCDD/NORECOVER -
    _$ DISK3:[BACKUP]TUESDAY_FULL.RBF -
    _$ RDB$SYSTEM, SALARY_HISTORY, JOBS, -
    _$ EMP_INFO, MF_PERS_SEGSTR/LOG
    %RMU-I-RESTXT_21, Starting full restore of storage area
     DISK1:[USER]MF_PERS_DEFAULT.RDA;1 at 18-JUN-1997 16:14:40.88
    %RMU-I-RESTXT_21, Starting full restore of storage area
     DISK1:[USER]SALARY_HISTORY.RDA;1 at 18-JUN-1997 16:14:41.28
    %RMU-I-RESTXT_21, Starting full restore of storage area
     DISK1:[USER]JOBS.RDA;1 at 18-JUN-1997 16:14:41.83
    %RMU-I-RESTXT_21, Starting full restore of storage area
     DISK1:[USER]EMP_INFO.RDA;1 at 18-JUN-1997 16:14:42.06
    %RMU-I-RESTXT_21, Starting full restore of storage area
     DISK1:[USER]MF_PERS_SEGSTR.RDA;1 at 18-JUN-1997 16:14:42.27
    %RMU-I-RESTXT_24, Completed full restore of storage area
     DISK1:[USER]JOBS.RDA;1 at 18-JUN-1997 16:14:42.49
    %RMU-I-RESTXT_24, Completed full restore of storage area
     DISK1:[USER]EMP_INFO.RDA;1 at 18-JUN-1997 16:14:42.74
       .
       .
       .
    %RMU-I-RESTXT_01, Initialized snapshot file
     DISK1:[USER]MF_PERS_DEFAULT.SNP;1
    %RMU-I-LOGINIFIL,     contains 100 pages, each page
     is 2 blocks long
    %RMU-I-RESTXT_01, Initialized snapshot file
     DISK1:[USER]EMP_INFO.SNP;1
    %RMU-I-LOGINIFIL,     contains 100 pages, each page
     is 2 blocks long
       .
       .
       .
    %RMU-I-AIJWASON, AIJ journaling was active when
     the database was backed up
    %RMU-I-AIJRECFUL, Recovery of the entire database
     starts with AIJ file sequence 0
    %RMU-I-COMPLETED, RESTORE operation completed
     at 18-JUN-1997 16:14:46.82
    $ !
    $ ! Complete restoring database areas by applying the most
    $ ! recent full-area backup file.  However, do not include
    $ ! the RDB$SYSTEM table because that was already restored
    $ ! in the previous restore operation.  This restore
    $ ! operation will attempt an automatic recovery of the .aij files.
    $ !
    $ RMU/RESTORE/AREA/NOCDD DISK3:[BACKUP]MONDAY_FULL.RBF -
    _$ EMPIDS_LOW, EMPIDS_MID, EMPIDS_OVER, DEPARTMENTS/LOG
    %RMU-I-RESTXT_21, Starting full restore of storage area
     DISK1:[USER]EMPIDS_OVER.RDA;1 at 18-JUN-1997 16:20:05.08
    %RMU-I-RESTXT_21, Starting full restore of storage area
     DISK1:[USER]EMPIDS_MID.RDA;1 at 18-JUN-1997 16:20:05.40
    %RMU-I-RESTXT_21, Starting full restore of storage area
     DISK1:[USER]EMPIDS_LOW.RDA;1 at 18-JUN-1997 16:20:05.91
    %RMU-I-RESTXT_21, Starting full restore of storage area
     DISK1:[USER]DEPARTMENTS.RDA;1 at 18-JUN-1997 16:20:06.01
    %RMU-I-RESTXT_24, Completed full restore of storage area
     DISK1:[USER]EMPIDS_OVER.RDA;1 at 18-JUN-1997 16:20:06.24
       .
       .
       .
    %RMU-I-RESTXT_01, Initialized snapshot file
     DISK1:[USER]DEPARTMENTS.SNP;1
    %RMU-I-LOGINIFIL,     contains 100 pages, each page
     is 2 blocks long
    %RMU-I-RESTXT_01, Initialized snapshot file
     DISK1:[USER]EMPIDS_LOW.SNP;1
    %RMU-I-LOGINIFIL,     contains 100 pages, each page
     is 2 blocks long
       .
       .
       .
    %RMU-I-AIJWASON, AIJ journaling was active when
     the database was backed up
    %RMU-I-AIJRECFUL, Recovery of the entire database
     starts with AIJ file sequence 0
    %RMU-I-AIJRECARE, Recovery of area DEPARTMENTS starts
     with AIJ file sequence 0
    %RMU-I-AIJRECARE, Recovery of area EMPIDS_LOW starts
     with AIJ file sequence 0
    %RMU-I-AIJRECARE, Recovery of area EMPIDS_MID starts
     with AIJ file sequence 0
    %RMU-I-AIJRECARE, Recovery of area EMPIDS_OVER starts
     with AIJ file sequence 0
    %RMU-I-AIJBADAREA, inconsistent storage area
     DISK1:[USER]DEPARTMENTS.RDA;1 needs AIJ sequence number 0
    %RMU-I-AIJBADAREA, inconsistent storage area
     DISK1:[USER]EMPIDS_LOW.RDA;1 needs AIJ sequence number 0
       .
       .
       .
    %RMU-I-LOGRECDB, recovering database file
     DISK1:[USER]MF_PERSONNEL.RDB;1
    %RMU-I-AIJAUTOREC, starting automatic after-image
     journal recovery
    %RMU-I-LOGOPNAIJ, opened journal file DISK2:[CORP]AIJ_ONE.AIJ;1
    %RMU-I-AIJONEDONE, AIJ file sequence 0 roll-forward
     operations completed
    %RMU-I-LOGRECOVR, 1 transaction committed
    %RMU-I-LOGRECOVR, 0 transactions rolled back
    %RMU-I-LOGRECOVR, 2 transactions ignored
    %RMU-I-AIJNOACTIVE, there are no active transactions
    %RMU-I-AIJSUCCES, database recovery completed successfully
    %RMU-I-AIJALLDONE, after-image journal roll-forward
     operations completed
    %RMU-I-LOGSUMMARY, total 1 transaction committed
    %RMU-I-LOGSUMMARY, total 0 transactions rolled back
    %RMU-I-LOGSUMMARY, total 2 transactions ignored
    %RMU-I-AIJSUCCES, database recovery completed successfully
    %RMU-I-AIJGOODAREA, storage area
     DISK1:[USER]DEPARTMENTS.RDA;1 is now consistent
    %RMU-I-AIJGOODAREA, storage area
     DISK1:[USER]EMPIDS_LOW.RDA;1 is now consistent
    %RMU-I-AIJGOODAREA, storage area
     DISK1:[USER]EMPIDS_MID.RDA;1 is now consistent
       .
       .
       .
    %RMU-I-AIJFNLSEQ, to start another AIJ file recovery,
     the sequence number needed  will be 0
    %RMU-I-COMPLETED, RESTORE operation completed at
     18-JUN-1997 16:20:11.45
    $ !
    $ ! The database is now restored and recovered.  However, if
    $ ! for some reason the automatic .aij file recovery was not
    $ ! possible (for example, if you had backed up the .aij files),
    $ ! apply the .aij files in the same order in
    $ ! which they were created.  That is, if .aij files were backed
    $ ! up each night, apply aij_mon.aij first and aij_tues.aij second.

    Example 7

    The following example demonstrates the use of the Directory,
    File, and Root qualifiers. First, the database is backed up, then
    a couple storage area files and a snapshot file are moved. The
    restore-only-root operation does the following:

    o  The default directory is specified as DISK2:[DIR].

    o  The target directory and file name for the database root file
       is specified with the Root qualifier. The target directory
       specified with the Root qualifier overrides the default
       directory specified with the Directory qualifier. Thus, the
       RMU Restore Only_Root process restores the database root in
       DISK3:[ROOT] and names it COPYRDB.RDB.

    o  The target directory for the EMPIDS_MID storage area is
       DISK4:[FILE]. The RMU Restore Only_Root process updates the
       database root file to indicate that EMPIDS_MID currently
       resides in DISK4:[FILE].

    o  The target for the EMPIDS_MID snapshot file is
       DISK5:[SNAP]EMPIDS_MID.SNP Thus, the RMU Restore Only_
       Root process updates the database root file to indicate
       that the EMPIDS_MID snapshot file currently resides in
       DISK5:[SNAP]EMPIDS_MID.SNP.

    o  The target file name for the EMPIDS_LOW storage area is
       EMPIDS. Thus, the RMU Restore Only_Root process updates
       the database root file to indicate that the EMPIDS_LOW
       storage area currently resides in the DISK2 default directory
       (specified with the Directory qualifier), and the file is
       currently named EMPIDS.RDA.

    o  The target for the EMPIDS_LOW snapshot file is
       DISK5:[SNAP]EMPIDS.SNP. Thus, the RMU Restore Only_
       Root process updates the database root file to indicate
       that the EMPIDS_LOW snapshot file currently resides in
       DISK5:[SNAP]EMPIDS.SNP.

    o  Data for all the other storage area files and snapshot files
       remain unchanged in the database root file.

    $ ! Back up the database:
    $ !
    $ RMU/BACKUP MF_PERSONNEL.RDB MF_PERSONNEL.RBF
    $ !
    $ ! Move a couple of storage areas and a snapshot file:
    $ !
    $ RMU/MOVE_AREA MF_PERSONNEL.RDB -
    _$ /DIRECTORY=DISK2:[DIR] -
    _$ EMPIDS_MID/FILE=DISK4:[FILE] -
    _$ /SNAPSHOT=(FILE=DISK3:[SNAP]EMPIDS_MID.SNP), -
    _$ EMPIDS_LOW/FILE=EMPIDS -
    _$ /SNAPSHOT=(FILE=DISK5:[SNAP]EMPIDS.SNP)
    $ !
    $ ! Database root is lost.  Restore the root and update the
    $ ! locations of the moved storage areas and snapshot file as
    $ ! recorded in the database root file because the locations
    $ ! recorded in the backup file from which the root is restored
    $ ! are not up-to-date:
    $ !
    $ RMU/RESTORE/ONLY_ROOT MF_PERSONNEL.RBF -
    _$ /ROOT=DISK3:[ROOT]MF_PERSONNEL.RDB -
    _$ EMPIDS_MID/FILE=DISK4:[FILE] -
    _$ /SNAPSHOT=(FILE=DISK2:[DIR]EMPIDS_MID.SNP), -
    _$ EMPIDS_LOW/FILE=DISK2:[DIR]EMPIDS -
    _$ /SNAPSHOT=(FILE=DISK5:[SNAP]EMPIDS.SNP)
Close Help