Progress
Version 9
Product Update Bulletin


SEQUENCE Qualifier

The SEQUENCE qualifier to RFUTIL improves your ability to maintain a hot stand-by database recovery strategy by updating the sequence number of a hot stand-by target database to expect the last AI extent in use at the time of the operating system copy or backup of the source database.

Operating System
Syntax
UNIX
Windows

rfutil db-name -C sequence  

db-name

Specifies the database you are using.

CAUTION: RFUTIL SEQUENCE must be applied to the database prior to rolling forward any after image extents.
RFUTIL SEQUENCE Example

A hot stand-by is typically maintained by first making a copy of your source database, and then regularly updating the database by rolling forward the AI extents from the source to the target. The preferred methods of making a copy of your database use the Progress utilities PROCOPY or PROBKUP. However, if you use your operating system commands to make a copy, the SEQUENCE qualifier to RFUTIL is available to update your target database to expect the correct after image extent in the roll forward sequence. Correcting the sequence is only necessary if there has been an AI extent switch on your source database after the database was last marked as backed up and before the operating system copy was made.

The following code sample demonstrates the steps to making a hot stand-by database using an operating system copy command. In this example, the target database does not need its sequence corrected:

# Update your source database by adding after imaging extents 
prostrct add production_db add.st 
# truncate the database BI file and mark as backed up 
proutil production_db -C truncate bi  
rfutil production_db -C mark backedup 
# Activate after imaging 
rfutil production_db -C aimage begin  
# Make a copy of the database using operating system commands 
cp production_db* /db_standby 
# Mark the source database as backed up 
rfutil production_db -C mark backedup 
# Fix the target database file specifications and make new database st file. 
prostrct repair /db_standby/production_db /db_standby/standby.st 
prostrct list /db_standby/production_db /db_standby/production_db.st 
# At this point allow updates to the source database 
# Roll forward the first AI extent from production_db to standby copy 
rfutil /db_standby/production_db -C roll forward -a production_db.a1 
# Continue allowing updates and regularly roll forward the AI extents from 
# the production_db to the standby copy. 

In the next code example, updates to the database occur at an earlier point in the process. These updates require that the sequence of the target database be corrected prior to rolling forward an AI extent;

# Update your source database by adding after imaging extents 
prostrct add production_db add.st 
# truncate the database BI file and mark as backed up 
proutil production_db -C truncate bi  
rfutil production_db -C mark backedup 
# Activate after imaging 
rfutil production_db -C aimage begin  
# At this point allow updates to the source database. This activity will  
# fill the first AI extent, production_db.a1, and causing a switch to the 
# second AI extent, production_db.a2. 
# Make a copy of the database using operating system commands 
cp production_db* /db_standby 
# Mark the source database as backed up 
rfutil production_db -C mark backedup 
# Fix the target database file specifications and make new database st file. 
prostrct repair /db_standby/production_db /db_standby/standby.st 
prostrct list /db_standby/production_db /db_standby/production_db.st 
# Correct the sequence number of target database. 
rfutil /db_standby/production_db -C sequence 
# Roll forward the second AI extent from production_db to standby copy. 
# This is the extent which was BUSY at the time the copy of the database 
# was made. 
rfutil /db_standby/production_db -C roll forward -a production_db.a2 
# Continue allowing updates and regularly roll forward the subsequent AI 
# extents from the production_db to the standby copy. 

The target database must have its sequence corrected prior to attempting to apply an AI extent with roll forward. Roll forward disables after imaging, and it is impossible to correct the sequence after roll forward has been disabled. If the roll forward on the target database fails, re-copy from the source, use RFUTIL SEQUENCE, and then roll forward.


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095