Primary server failure

The steps for recovering from primary server failure depend on the synchronization mode you are using for your database mirroring system.

If you are running in synchronous mode, then all the transactions that are present on the primary server are also guaranteed to be committed on the mirror server. The mirror server can take over as the new primary server without any user intervention in almost all cases.

Note

In rare cases, if a primary server loses its connections to both the mirror and arbiter servers while a checkpoint is being performed, then synchronization may fail the next time the two servers connect. The mirror server reports an error indicating that the database is not compatible with the primary server and is being shut down. If this occurs, the database on the current primary server must be manually copied or backed up to the mirror server for the mirror server to successfully start and synchronize.

In asynchronous or asyncfullpage mode, failover from the primary server to the mirror server is not automatic because the mirror server may not have all committed transactions that were applied on the primary server. Unless you specified that autofailover should take place, when using one of the asynchronous modes, a mirror server, by default, cannot take ownership of a database when the primary fails. When the failed server is restarted, it detects whether transactions were lost. If transactions were lost, it writes a message to the database server message log and shuts down the database.

When starting the original mirror server as the new primary server, you have two options for getting the database files on both servers into the same state:

  • Copy the database and transaction log files from the original primary server to the mirror server and then start the mirror server as the new primary server. You can force a server to be the primary server using the ALTER DATABASE statement.

  • Perform a backup (using dbbackup) on the original mirror server. Copy the files to the original primary server, and then start the database servers. See Backup utility (dbbackup).

 See also