Rebuilding databases involved in synchronization or replication

There are two ways of rebuilding a database involved in synchronization or replication. The first method uses the dbunload -ar option to make the unload and reload occur in a way that does not interfere with synchronization or replication. The second method is a manual method of doing the same task.

Prerequisites

DBA authority.

All subscriptions must be synchronized before rebuilding a database participating in MobiLink synchronization.

Context and remarks

This section applies to SQL Anywhere MobiLink clients (clients using dbmlsync) and SQL Remote.

If a database is participating in synchronization or replication, particular care needs to be taken if you want to rebuild the database. Synchronization and replication are based on the offsets in the transaction log. When you rebuild a database, the offsets in the old transaction log are different than the offsets in the new log, making the old log unavailable. For this reason, good backup practices are especially important when participating in synchronization or replication.

Note

You can use other dbunload options to specify a running or non-running database and database parameters.

 Rebuild a database involved in synchronization or replication (dbunload)
  1. Shut down the database.

  2. Perform a full off-line backup by copying the database and transaction log files to a secure location.

  3. Run the following dbunload command to rebuild the database:

    dbunload -c connection-string -ar directory

    The connection-string is a connection with DBA authority, and directory is the directory used in your replication environment for old transaction logs. There can be no other connections to the database.

    The -ar option only applies to connections to a personal server, or connections to a network server over shared memory.

  4. Shut down the new database and then perform the validity checks that you would usually perform after restoring a database.

  5. Start the database using any production options you need. You can now allow user access to the reloaded database.

 Rebuild a database involved in synchronization or replication, with manual intervention
  1. Shut down the database.

  2. Perform a full off-line backup by copying the database and transaction log files to a secure location.

  3. Run the dbtran utility to display the starting offset and ending offset of the database's current transaction log file.

    Note the ending offset for use in Step 8.

  4. Rename the current transaction log file so that it is not modified during the unload process, and place this file in the dbremote off-line logs directory.

  5. Rebuild the database.

  6. Shut down the new database.

  7. Erase the current transaction log file for the new database.

  8. Use dblog on the new database with the ending offset noted in Step 3 as the -z parameter, and also set the relative offset to zero.

    dblog -x 0 -z 0000698242 -ir -is database-name.db
  9. When you run the Message Agent, provide it with the location of the original off-line directory on its command line.

  10. Start the database. You can now allow user access to the reloaded database.

Results

The database is reloaded and started.

Next

None.

 See also