Use these procedures to ensure clean recovery after media failure.
Recovering after media failure of the database file
Make an extra backup copy of the current transaction log. If the database file is gone, the only record of changes since the last backup is in the transaction log.
Create a recovery directory to hold the files you use during the recovery process.
Copy the database file from the last full backup to the recovery directory. You can find the database file in the backup directory. It is named erssd_name.db.
Copy the backup transaction log into the recovery directory. The backup transaction log, named erssd_name.log, is in the backup directory.
Apply the transactions from the backup transaction log to the recovery database:
dbsrv9 erssd_name.db -a erssd_name.log
Copy the online transaction log into the recovery directory. The online transaction log, named erssd_name.log, is in the log directory.
Apply the transactions from the online transaction log to the recovery database:
dbsrv9 erssd_name.db -a erssd_name.log
Make a post-recovery backup by making an extra copy of the database file.
Move the database file to the production directory and restart the database. Use the command dbspawn from the Replication Server error log.
Perform validity checks on the recovery database:
dbvalid -c "uid=primary_user_name; pwd=primary_user_password;eng=erssd_name LINKS=tcpip (DOBROAD=NONE;HOST=localhost;PORT=port)"
Restart Replication Server.
Recovering from media failure on the database transaction log
Identify the corrupted file. You can do this by running the Log Translation utility on both the transaction log and its mirror to see which one generates an error message. In this example, the Log Translation utility, dbtran, translates a transaction log named erssd_name.log, saving the translated output in db_name.sql.
dbtran erssd_name.log
The Log Translation utility translates the intact file with no errors, but reports an error when translating the corrupt file.
Copy the correct file over the corrupted file, so that the two files are identical.
Restart the database, using command from the Replication Server error log.
Restart Replication Server.