The Restore
I had a problem starting the restore. Windows NT Backup was unable to determine the server name it was running under. After a quick search of the Microsoft Web site, I discovered that this problem is a known bug in Exchange 2000. The Microsoft article "XADM: The 'ESEUTIL /CC' Command Does Not Work on Cluster Server" (http://support.microsoft.com/support/kb/articles/q266/6/89.asp) explains the problem. Eseutil attempts to use the local node name instead of the cluster name to perform recovery. The workaround is to type
SET _CLUSTER_NETWORK_NAME_
=<cluster_name>
at a command prompt. In the command, cluster_name corresponds to your cluster's network name. This action let me begin the restore procedure.
The Restore Sequence
I selected the This database can be overwritten by a restore check box on each mailbox store and public folder store I was restoring. Then, I opened NT Backup and selected the databases from the backup set. As Joseph Neubauer explains in "Restoring the Exchange 2000 Store Step by Step," page 1, if you perform full backups, you need to select the Last Backup Set check box in the Restoring Database Store dialog box. This option tells NT Backup that you're restoring from the most recent backup and that you want recovery to take place. Alternatively, you can use the /cc switch with Eseutil to replay the transaction logs. You also need a temporary location for files created during the restore.
My first attempt at the restore was ineffective. I copied back the log files created since the last backup and let the restore automatically replay the transaction logs since the backup. Unfortunately, some of the transaction logs Exchange had created since the backup were corrupt, so they in turn corrupted the restored database when I replayed them.
I contacted Microsoft Premier Support Services for assistance. Microsoft informed me that if a transaction log corruption occurs, you can't recover any data by replaying transaction logs since the last backup. I reran the restore procedure. This time, I removed all transaction logs, and I mounted the stores successfully. At this stage, the server was restored to the point of the last backup.
Before the restore, I had made a copy of the \mtadata directory on the Exchange 2000 server. Now, I replayed the messages in the following sequence:
- I stopped the MTA on the Exchange Server 5.5 server that was relaying messages to the Exchange 2000 server.
- I allowed Exchange to deliver all messages in the \mtadata directory.
- I stopped the MTA on the Exchange 2000 server.
- I deleted the contents of the \mtadata directory.
- I copied the contents of the \mtadata directory I'd copied back to the \mtadata directory.
- I restarted the MTA on the Exchange 2000 server.
- I restarted the MTA on the Exchange Server 5.5 server that was relaying messages to the Exchange 2000 server.
Lessons Learned
My experience with Exchange 2000 disaster recovery has taught me some important lessons. Remember these points.
- Make sure that you configure your hardware properly, especially the I/O subsystem. Place transaction logs and databases on separate physical disks and, if possible, on separate array controllers. Consult your hardware vendor to verify that the cache settings on the array controllers are correct for your configuration.
- If transaction log corruption occurs, you might not be able to recover messages sent and received since the last backup.
- Make a copy of the databases and transaction logs before attempting any recovery.
- Disable the incoming mail connections on your server. You don't want to deliver queued messages until you've completed the restores successfully.
- Practice and document your disaster-recovery procedures. Revisit these procedures when you deploy Exchange 2000 Service Pack 1. SP1 includes changes to the restore process.
- Assemble a disaster-recovery kit. This kit should include Exchange 2000 and Win2K CD-ROMs, disaster-recovery procedures, server build documents, emergency contact lists, and contact details for Microsoft Product Support Services (PSS).
- When you've resumed service, buy yourself a coffee. And be sure to keep all the thank-you messages from your grateful Microsoft Outlook users!