The backup .aij file you create can be used with the RMU Recover
command to recover (roll forward) journaled transactions. In some
cases, you might have to issue additional Recover commands: one
for the backup .aij file and a second for the more recent .aij
files.
Oracle Rdb supports the following two types of .aij file
configurations:
o A configuration that uses a single, extensible .aij file
This is the method always used prior to Version 6.0 and is
also the default (for compatibility with versions of Oracle
Rdb prior to Version 6.0).
When an extensible .aij file is used, one .aij file is written
to and extended, as needed, by the number of blocks specified
when the .aij file was created. The .aij file continues to
be extended until it is backed up (or the device on which it
resides is full).
The RMU Backup After_Journal command copies transactions
recorded in the current .aij file (always on a disk device)
to the backup .aij file (which might be on a tape or disk
device). On completion, the current .aij file is truncated
and used again. During periods of high update activity, the
truncation of the active .aij file might not be performed
because of conflicting access to the .aij file by other users,
but the storage allocated to the active .aij file is still
used again when the backup operation completes.
o A configuration that uses two or more fixed-size .aij files
When fixed-size .aij files are used, the database maintains
multiple .aij files; however, only one .aij file is written to
at a time. This .aij file is considered the current journal.
When this .aij file is filled, a switchover occurs to allow
journaling to continue in another available .aij file.
The RMU Backup After_Journal command works as follows with
fixed-size .aij files:
- Backs up any full .aij files
The backup operation first backs up the .aij file with the
lowest AIJ sequence number (that needs backing up), the
operation continues to back up .aij files in ascending AIJ
sequence number. If a lot of .aij files need to be backed
up when the RMU Backup After_Journal command is issued,
one backup file might contain the contents of all the .aij
files being backed up.
- Backs up the current .aij file
Even if there are active transactions at the time of the
backup operation, the RMU Backup After_Journal command
will start to backup the current active .aij file. If
you have specified the Quiet_Point qualifier, the backup
operation stalls at some point waiting for all the current
transactions to complete.
- Switches to the next available .aij file
An available .aij file is one for which both of the
following are true:
* It is not currently being used to record transactions.
* It is not needed for a redo operation.
Such an .aij file might be one that has never been used, or
one that has already been backed up.
Once a specified .aij file has been completely backed up, it
is initialized and marked as available for reuse.
NOTE
The method employed, fixed-size .aij files or an extensible
.aij file, cannot be set explicitly by the user. Any event
that reduces the number of .aij files to one results in an
extensible .aij file being used. Any event that increases
the number .aij files to two or more results in fixed-size
.aij files being used. An inaccessible .aij file is counted
in these equations. Therefore, if you have one accessible
.aij file and one inaccessible .aij file (perhaps because
it has been suppressed), fixed-size .aij journaling is still
used.
Because some of the RMU Backup After_Journal qualifiers are
valid only when one or the other journaling mechanism is
employed, you might need to issue an RMU Dump command to
determine which journaling mechanism is currently being
employed before you issue an RMU Backup After_Journal
command.
Also note that once a backup operation begins, .aij file
modification is not allowed until the backup operation is
complete. However, if the type of journaling changes between
the time you issue an RMU Dump command and the time you
issue the RMU Backup After_Journal command, you receive an
error message if you have specified qualifiers that are only
valid with a particular type of journaling mechanism. (The
Threshold qualifier, for example, is valid only when the
extensible journaling mechanism is being used.)
If you back up the .aij file or files to tape, you must mount
the backup media by using the DCL MOUNT command before you issue
the RMU Backup After_Journal command. If you specify the default,
Format=Old_File, the RMU Backup After_Journal command uses RMS
to write to the tape and the tape must be mounted as an OpenVMS
volume. (That is, do not specify the FOREIGN qualifier with the
MOUNT command.) If you specify the Format=New_Tape qualifier,
the RMU Backup After_Journal command writes backup files in a
format similar to that used by the RMU Backup command, and you
must mount the tape as a FOREIGN volume.
If you back up an .aij file to disk, you can then use the OpenVMS
Backup utility (BACKUP) to archive the .aij backup file.
The RMU Backup After_Journal command can be used in a batch job
to avoid occupying an interactive terminal for long periods of
time. The Continuous, Interval, Threshold, and Until qualifiers
control the duration and frequency of the backup process. When
you use the Continuous qualifier, the command can occupy a
terminal indefinitely. Therefore, it is good practice to issue
the command through a batch process when executing a continuous
.aij file backup operation. However, remember that the portion of
the command procedure that follows the RMU Backup After_Journal
command is not executed until after the time specified by the
Until qualifier.
When the RMU Backup After_Journal command completes, it records
information about the state of the backup files in the global
process symbols presented in the following list. You can use
these symbols in DCL command procedures to help automate the
backup operation.
These symbols are not set, however, if you have issued a DCL SET
SYMBOL/SCOPE=(NOLOCAL, NOGLOBAL) command.
o RDM$AIJ_SEQNO
Contains the sequence number of the last .aij backup file
written to tape. This symbol has a value identical to RDM$AIJ_
BACKUP_SEQNO. RDM$AIJ_SEQNO was created prior to Oracle Rdb
Version 6.0 and is maintained for compatibility with earlier
versions of Oracle Rdb.
o RDM$AIJ_CURRENT_SEQNO
Contains the sequence number of the currently active .aij
file. A value of -1 indicates that after-image journaling is
disabled.
o RDM$AIJ_NEXT_SEQNO
Contains the sequence number of the next .aij file that
needs to be backed up. This symbol always contains a positive
integer value (which can be 0).
o RDM$AIJ_LAST_SEQNO
Contains the sequence number of the last .aij file ready for a
backup operation, which is different from the current sequence
number if fixed-size journaling is being used. A value of -1
indicates that no journal has ever been backed up.
If the value of the RDM$AIJ_NEXT_SEQNO symbol is greater than
the value of the RDM$AIJ_LAST_SEQNO symbol, no more .aij files
are currently available for the backup operation.
o RDM$AIJ_BACKUP_SEQNO
Contains the sequence number of the last .aij file backed up
by the backup operation. This symbol is set at the completion
of an .aij backup operation. A value of -1 indicates that this
process has not yet backed up an .aij file.
The RMU Backup After_Journal command provides an informational
message that describes the exact sequence number for each .aij
backup file operation.
o RDM$AIJ_COUNT
Contains the number of available .aij files.
o RDM$AIJ_ENDOFFILE
Contains the end of file block number for the current AIJ
journal.
o RDM$AIJ_FULLNESS
Contains the percent fullness of the current AIJ journal.
Note that these are string symbols, not integer symbols, even
though their equivalence values are numbers. Therefore performing
arithmetic operations with them produces unexpected results.
If you need to perform arithmetic operations with these symbols,
first convert the string symbol values to numeric symbol values
using the OpenVMS F$INTEGER lexical function. For example:
$ SEQNO_RANGE = F$INTEGER(RDB$AIJ_LAST_SEQNO)
- F$INTEGER(RDB$AIJ_NEXT_SEQNO)