Consultor Eletrônico



Kbase P103912: What to do when a SOURCE database fails to start after prorest
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   11/3/2008
Status: Verified

GOAL:

What to do when a SOURCE database fails to start after prorest

GOAL:

What to do when the source database needs restoring from the source?

GOAL:

Why does the source database fail to start after it has been restored from a probkup?

GOAL:

Why does the replicated database fail to start with "RCB" errors ?

GOAL:

restoring a source database from a source backup

FACT(s) (Environment):

All Supported Operating Systems
Fathom Replication
OpenEdge Replication

FIX:

Depending on what you're planning to accomplish with the restored source database probkup, influences the next actions to take.

After-imaging is disabled in the probkup of a database. So when this probkup is restored (prorest), after-imaging may need re-enabling and after-imaging is a key requirement of replication.

1.) If the restore (prorest) of the replication-enabled source database is NOT for a replication environment.

Restore the source backup and disable replication as follows:

a.) prorest source source.bak
b.) proutil source -C disablesitereplication source
c.) access the database as needed

NOTE: If you do not disablesitereplication and start the restored database up WITH the "-DBService replserv" startup parameter, the database will start and will be accessible, but neither after-imaging will be enabled nor will the replication server (RPLS) initiallise.
2.) If the restore (prorest) of the replication-enabled source database, is to replace the existing source database in the replication environment.

[On the source database machine:]

Prior to any further actions, ensure that the current target database is not accessible. The Target database must be re-baselined after restoring the source database, but sometimes customers prefer to allow users to connect to the 'old' target database until the source is ready to go. In this case, ensure that the replication agent (RPLA) is stopped.
$ rfutil target -C terminate agent
Otherwise, stop the target database.

a.) The existing source database will first need to be removed because you are not allowed to prorest over an existing replication enabled source database. If you do, the following error messages will result:

Access to database source not allowed. The database is enabled for site replication but either replication is not running, or this process is not authorized to open a replication enabled database. (10356)
!!! ERROR - Database restore utility FAILED !!! (8564)

Alternatively, /IF/ the database is still accessible and there are no database structural errors, disable replication against the current environment: echo y | proutil source -C disablesitereplication source.

b.) Remove the source.repl.recovery file, it is no longer valid.

c.) Restore the backup into your previously defined (and amended as needed) source database structure created with the same database blocksize as the database that the probkup was created against. Otherwise the prorest operation will:
- fail if the blocksize is different,
- only restore one extent per storage area and there will not be any after-image extents.
$ prostrct create source source.st -blocksize <db-blocksize)
$ prorest source source.bak

NOTE: if disablesitereplication source was an option in step 2a, then it is only necessary to restore over the current structure.

d.) Clear the source replication flag. The existing flag is from the "previous" instance of the replication environment. Backups of the source database are needed for target creation and the RCB block detail are set for this reason, this feature invalidates rebaselining source databases with source database probkups.
$ proutil source -C disablesitereplication source

e.) Truncate the bi file
$ proutil source -C truncate bi

f.) Mark the database as backed up - in this case you have a probkup baseline that you're already using.
$ rfutil source -C mark backedup

g.) Enable after-imaging
$ rfutil source -C aimage begin -G 0

h.) Ena.ble the database as a source replication database
$ proutil source -C enablesitereplication source

i.) Start the source database
$ proserve source [parameters] -DBService replserv

j.) Take an online backup to restore the target database
$ probkup online source source1.bak

[On the target machine:]

a.) Shutdown the target database (if needed)
$ proshut target -byF

b.) Delete the target database or disable replication on it: proutil target -C disablesitereplication target
Delete the target.repl.recovery file, it is no longer valid for this replication baseline.

c.) Restore the online backup of the source database once it has been transferred across
$ prorest target source1.bak

d.) Enable this as the target database for your replication environment
$ proutil target -C enablesitereplication target

e.) Start the target database
$ proserve target -DBService replagent -S <port> .