Utilities that can be run in a replication enabled environment are in the Documentation:
OpenEdge Replication Users Guide - Reference - Utilities and OpenEdge Replication, Table 5-17, 5-51 pp 177
Amongst these utilities that are allowed on both the source and target replication enabled databases is the prostrct builddb utility.
It is important to consider that when running prostrct builddb on either the source or the target database, the Control Area (.db) is rebuilt from the database structure description file.
Effectively the database will then have been disabled for replication although it is still enabled:
- The prostrct builddb utility does only minimal validation of the resulting control area and is not able to fully reconstruct all the control information needed by replication.
- Replication keeps recovery information in a blob (RCB) in the Control Area (dbname.db file). The database code cannot recreate this information since it is replication specific and therefore BUILDDB creates an empty replication blob in the new Control Area.
- When the replication database is restarted, Replication is responsible for restoring the image of the blob from the recovery file (.recovery). If the recovery information is no longer available or there is a problem with the content, this information cannot be recovered. For example: Replication enabled database cores when started multi-user
- BUILDDB should therefore preferably be run in a replication environment after disablesitereplication and then only when all other avenues have been exhausted.
Once
prostrct builddb has been run, the replication baseline will need to be re-established. It is not the intent of this Article to fully describe the steps involved. These should be fully documented in the site Disaster recovery plans based on the individual environment requirements and version possibilities. The following outline the high-level steps needed.
A. If
source database Control Area was rebuilt with BUILDDB:
- Remove the [source | target].repl.recovery files,
- Re-enable AI and replication on source database,
- Take a new full backup of source
- Restore this backup to target and finally enable replication on target database.
B. If
target database Control Area was rebuilt with BUILDDB:
- Remove the target.repl.recovery files,
- Take a new full backup of source
- Restore this backup to target and finally
- Enable replication on target database.
C. There may be extraneous circumstances in the production environment which lead to the perceived need for the control area to be rebuilt. Other recovery options may include:
a.) Go to backup
b.) Dump out database single user