Salesforce

How to use OS backup with after imaging enabled - pre Progress 9.1E?

« Go Back

Information

 
TitleHow to use OS backup with after imaging enabled - pre Progress 9.1E?
URL NameP2862
Article Number000145666
EnvironmentProduct: Progress
Version: 8.x, 9.0x, 9.1A, 9.1B, 9.1C, 9.1D
Product: OpenEdge
Version: 10.0A, 10.0B
OS: All supported platforms
Question/Problem Description
How to use an offline OS backup with after imaging enabled?
When to use rfutil -C mark backedup when AI is already enabled on the database?
Where to rfutil -C aimage new for offline OS backup baseline?
Which AI file to rollforward against an OS copy?
How to avoid "Expected ai file number 1 but file specified is X in sequence. (8019)"
Steps to Reproduce
Clarifying Information
Error MessageExpected ai file number but file specified is in sequence. (8019)
Defect Number
Enhancement Number
Cause
Resolution
The purpose of this Article is not to discuss the OS copy AI recovery plan, merely to provide a template.

The use of 3rd Party database file copy, although possible can be error prone in our experience - simply because there are so many points of potential failure in the OS copy part. For example: incomplete file copy, ftp failure, database being accessed during copy routine. When used in combination with after-imaging, there is the additional requirement to ensure that the ai switch is exactly paired to the OS copy and does not span OS copy.  

The preferred Progress Solution is to use the PROBKUP [(online | offline) or (full | incremental)] utility which automatically pairs the backup with ai file switching and keeps the expected AI sequence and current AI sequence counters aligned in the database master block.  It is exactly the misalignment of these counters that leads the 8019 error during rfutil -C roll forward.

The following procedure is fitted to best practice from the Progress perspective, assuming that the necessary checks are in place, it will work.  Although not all steps are entirely necessary, they are considered best practice.  As with any Disaster Recovery Plan, it should be fully tested and documented before rolling out to Live.
 
The following detail pertains to all versions supporting after-imaging up to and including Progress 9.1D09.  It can also be used in later versions as long as the limitations of this method are acceptable, otherwise an alternative method is outlined for Progress 9.1E, OpenEdge 10.0B01 or 10.1A (and beyond) in Article P115048, How to use an OS backup with after imaging enabled - post Progress 9.1E?  

Offline database backup with AI enabled:

1.)  Shutdown the database gracefully
$   proshut <db> -by
2.) Truncate the database before-image file
$   proutil <db> -C truncate bi
3.) Ensure that all cron jobs running against the database have stopped, no access to the database must be allowed during copy.
4.) Switch to a new aimage extent
$   rfutil <db> -C aimage new
5.) Take the 3rd party OS copy of all the database files (including necessary ai files) and verify completion.
6.) Mark the database as backed up - this step is only absolutely needed prior to rfutil -C aimage begin
$   rfutil <db> -C mark backedup
7.) Restart the database server
$   proserve <db> [+ database startup parameters]
 

Online database backup with AI enabled:
 
1.)   Issue a quiet point which will automatically forces a "rfutil -C aimage new" switch
$   proquiet <db> enable
2.)  Once the PROQUIET command has indicated that the quiet point has been enabled,use operating system commands to split mirrors, then/or
3.)   Take the 3rd party OS copy of all the database files (including necessary ai files) and verify completion.
4.)   Disable the database quiet point
$   proquiet <db> disable
 
Roll Forward AI Files:
 
1.)  Restore the OS backup, ensuring that "dbname.st" contains FULL absolute paths to the current location of the copied database extents and update the control area:
$   prostrct repair <db> dbname.st

PROSTRCT UNLOCK should not be necessary and indeed if executed will not work as it causes the database to skip crash recovery.

2.)  Disable after-imaging
$   rfutil <db> -C aimage end
3.) Roll-forward the AI extents starting with the ai file manually switched to in the offline method or automatically switched to when the quiet point was enabled in the online method above:
$   rfutil <db> -C roll forward -a <name>
 
Rollforward Limitation:

If an_other/a_later OS backup is taken with the intent to be used for applying AI files (roll forward), in order to be able to rollforward against this OS backup, the backup + ai file baseline first needs to be reset offline:
  • Disable After-imaging with rfutil -C aimage end
  • Optional: OS backup
  • Update the backup flag: rfutil -C mark backedup,
  • Enable After-imaging: rfutil -C aimage begin
Any OS backups that are taken "in between" baselines of re-enabling after-imaging, are just OS backup baselines that cannot be roll forwarded against. Upgrading to Progress 9.1E (or OpenEdge 10.0B01 or 10.1A and above) is a good idea apart from the many other functional feature benefits, the introduction "RFUTIL -C SEQUENCE" negates needing to reset the baseline.
Workaround
Notes
Keyword Phrase
Last Modified Date3/17/2016 11:41 AM

Powered by