KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q272570: XADM: Disaster Recovery of Information Store on Exchange Server

Article: Q272570
Product(s): Microsoft Exchange
Version(s): 4.5,5.5
Operating System(s): 
Keyword(s): kberrmsg exc55
Last Modified: 06-AUG-2002

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Exchange Server, version 5.5 
- Microsoft BackOffice Small Business Server version 4.5 
-------------------------------------------------------------------------------

SUMMARY
=======

This article describes how to recover from information store corruption by using
an offline restore procedure of Microsoft Exchange Server data.

NOTE: This article does not describe disaster recovery methods for any other
areas of Exchange Server, and the solution described in this article may not
correct all instances of information store corruption.

MORE INFORMATION
================

When corruption occurs in Exchange Server 5.5, one of the most commonly affected
components is the information store. Corruption usually involves any one of the
.edb (Exchange Server database) files. In most cases, either the Priv.edb file
or the Pub.edb file (located in the Exchsrvr\Mdbdata folder) is corrupted.

When the information store is corrupted, the following symptoms occur:

- The Microsoft Exchange Server information store service does not start.

- The information store cannot be stopped.

- The information store stops responding and the CPU usage level remains at 100
  percent.

- Clients are unable to retrieve or send e-mail. This behavior does not change
  if you stop the information store, and then restart it.

- When you try to restore the Exchange Server databases from an offline backup,
  and then run the Information Store Integrity utility (Isinteg) patch, you
  receive the following error message:

  Error 4294966746: JET_errDatabaseInconsistent

The procedure described in this article is based on a single-server, single-site
scenario with the following qualities:

- A site connector is not being used.

- An offline copy of both the Pub.edb and Priv.edb files exists.

- A Key Management Server is not being used.

- The server is running Microsoft Small Business Server 4.5. However, the
  principles can apply to most other Exchange Server 5.5 computers that are set
  up in a single-organization, single-site configuration.

NOTE: This setup is not designed to restore connector settings.

Troubleshooting
---------------

Use the following procedure to isolate information store corruption, and to help
you recover the public and private information stores. Before you start, make
sure that you can recover the data files from another source. For example, if
you are using a small Exchange Server database (less than 1 gigabyte [GB]), make
a copy of the Pub.edb and Priv.edb files. For larger databases, if you do not
have enough disk space to copy the files, use a good tape backup system or
another offline storage utility.

To troubleshoot the information store:

1. Try to start the information store. Record any error and event IDs that are
  reported.

2. Check the consistency of the databases. If a database is consistent, all the
  log files have been committed to the store. If the database is not
  consistent, the database may not be corrupted; the log files might not have
  been committed to the database yet. Run the following commands to check the
  consistency of the public and private databases:

  "c:\exchsrvr\bin>eseutil /mh ..\mdbdata\priv.edb" (without the quotation
  marks)

  "c:\exchsrvr\bin>eseutil /mh ..\mdbdata\pub.edb" (without the quotation
  marks)

  NOTE: This example assumes that you are running the programs from the
  ExchSrvr\Bin folder, and that the .edb files are in the same ExchSrvr folder
  in the Mdbdata folder.

  To verify that the .edb file is consistent, check the output line labeled
  "State." If you would like to send the output of this command directly to a
  text file, you can modify the command line as follows:

  "c:\exchsrvr\bin>eseutil /mh ..\mdbdata\priv.edb > <mypriv>.txt"
  (without the quotation marks)

  "c:\exchsrvr\bin>eseutil /mh ..\mdbdata\pub.edb > <mypub>.txt"
  (without the quotation marks)

  To have the text displayed directly on the screen, add "| more" (without the
  quotation marks) to the end of the command.

  If Pub.edb and Priv.edb are not located in the ExchSrvr\Mdbdata folder on the
  same drive as the ExchSrvr\Bin folder that you are running the command from,
  replace the "..\mdbdata\priv.edb" portion of the command with the full path
  of the Priv.edb file. Make the same changes for Pub.edb. If both the Pub.edb
  and Priv.edb files are consistent, go directly to step six.

  If one of the databases is inconsistent, attempt a soft recovery of the files
  to check if there are copies of the log files stored in the Mdbdata folder.
  If you do not have the log files, you are not able to complete the soft
  recovery process. When you do a soft recovery, any uncommitted log files are
  then committed to the information store database.

  To initiate a soft recovery, run the following commands. The first command is
  for the private information store. The second command is for the public
  information store:

  "c:\exchsrvr\bin>eseutil /r /ispriv" (without the quotation marks)

  "c:\exchsrvr\bin>eseutil /r /ispub" (without the quotation marks)

  This command enables you to recover the databases (if the databases are fully
  recoverable). To confirm this behavior, repeat this step from the beginning,
  and then run the "eseutil /mh" (without the quotation marks) command again.
  If the state has changed to "Consistent" for both the public and private
  information store, then go directly to step six.

3. Defragment the file that you just ran the recovery on. You must do this
  procedure if you are running short of disk space. If not, this step may not
  be necessary. If you ran the soft recovery procedure on both Pub.edb and
  Priv.edb, then run the following defragmentation commands on both files:

   - To defragment Priv.edb:

  "c:\exchsrvr\bin>eseutil /d /ispriv" (without the quotation marks)

   - To defragment Pub.edb:

  "c:\exchsrvr\bin>eseutil /d /ispub" (without the quotation marks)

  NOTE: If the private and public information store databases are large, this
  step may take some time.

  If you receive an error message that indicates a lack of space when you
  attempt this step, copy the ExchSrvr\Bin folder to a drive with more space
  and run the command from that location. For additional information about how
  to resolve this error message, click the article number below to view the
  article in the Microsoft Knowledge Base:

  Q192185 XADM: How to Defragment with the Eseutil Utility (Eseutil.exe)

4. If either of the databases are inconsistent, and the eseutil /r command does
  not return them to a consistent state, use the following procedure:

  NOTE: When you use the following command, you may lose some Exchange Server
  data, including the messages that were contained in the log files that were
  not yet committed to the information store database. The following command is
  a hard or forcible state recovery command, and should only be used if the
  public or private information stores did not return to a consistent state
  after you followed the previous steps.

  At the command prompt, type the following commands:

   - To bring the Priv.edb file back into a consistent state, type the
     following command at a command prompt:

  "c:\exchsrvr\bin>eseutil /p /ispriv" (without the quotation marks)

   - To bring the Pub.edb file back into a consistent state, type the following
     command at a command prompt:

  "c:\exchsrvr\bin>eseutil /p /ispub" (without the quotation marks)

5. Delete all .log files in the Mdbdata folder as well as the .chk file, and the
  Temp.edb file (if it exists).

6. Use Isinteg.exe to fix Pub.edb and Priv.edb. This utility runs a test on all
  areas of each of the databases and reports the results. It also attempts to
  fix any issues that are encountered.

   - To fix Priv.edb, type the following command at a command prompt:

  "c:\exchsrvr\bin>isinteg -pri -fix -test alltests" (without the quotation
  marks)

   - To fix Pub.edb, type the following command at a command prompt:

  "c:\exchsrvr\bin>isinteg -pub -fix -test alltests" (without the quotation
  marks)

  You receive a summary report which indicates the number of tests that were
  run, the number of warnings, the number of errors found, the number of fixes
  attempted, and the time it took for the program to run. If there are any
  warnings, errors, or fixes, run the command again. Repeat this step until
  there are no warnings, errors, or fixes.

  NOTE: In some cases, the same warnings, errors, or fixes are reported every
  time you run the program. If you receive the same warnings, errors, or fixes
  three times in a row, move to the next step. The errors may be caused by a
  corrupted e-mail attachment or something similar, which does not prevent you
  from starting the information store. If you can start the information store,
  and if it is stable, if errors and warning messages continue to be reported
  after you have run Isinteg.exe several times, use the ExMerge utility to
  repair the information store. The directions to use the ExMerge utility are
  listed later in this article.

7. Attempt to start the Information Store Database. If the Information Store
  Starts, proceed to the next step. If the Information Store fails to start
  with an error -1011 you will need to bring the Pub.edb and Priv.edb back to a
  state where the information store can recognize them. To do this, run the
  following command for both the public and private information store:

  "c:\exchsrvr\bin>isinteg -patch" (without the quotation marks)

  NOTE: The Microsoft Exchange directory service must be started before you run
  this command. This command works for both the public and the private
  databases.

  This command works for both the public and the private databases. You do not
  need to complete this step if you have already performed an online restore of
  the data. However, if you receive an -1011 error message when you try to
  start the information store, complete this step.

8. Restart the information store.

9. Run the Exchange Server Consistency Adjuster. The directory
  service/information store (DS/IS) Consistency Adjuster is used in disaster
  recovery scenarios where it is not possible to restore the folder to the
  recovery computer, or where the information store (the Priv.edb or the
  Pub.edb file) is copied to a recovery computer with a name that is different
  from that of the original server. If you did not lose the directory service
  or you did not reinstall Exchange Server with a clean folder, then you would
  not need to run this tool.

  NOTE: If you use this utility if you have multiple sites in your Exchange
  Server organization or multiple servers in your Exchange Server site, public
  folders may be rehomed unexpectedly.

For additional information about the DS/IS Consistency Adjuster, click the
article number below to view the article in the Microsoft Knowledge Base:

  Q182979 XADM: Function and Effects of the DS/IS Consistency Adjuster

Using the Consistency Adjuster
------------------------------

To run the Consistency Adjuster, following these steps:

1. Start the Exchange Server Administrator program.

2. Open the container for your server.

3. Open the configuration container.

4. Open the Servers container.

5. Click your server.

6. On the File menu, click Properties, and then click the Advanced tab.

7. Click Consistency Adjuster, select all of the Operations check boxes, and
  then click OK.

The Consistency Adjuster runs on both the public and private information stores.

If you are performing this recovery on another server, or if you removed and
reinstalled Exchange Server on this server and do not have a working copy of the
directory store (Dir.edb), then there are two methods for recovering the users
mailboxes. For both these methods, you are required to re-create any
distribution lists and membership to those distribution lists that were lost.

Method One:

If you are able to access the user accounts, start the Exchange Server
Administrator program, and then click "Extract Windows NT Account List" on the
Tools menu. Make sure that you extract the user list from the domain, and not
from the local computer. This procedure enables you to create a file that
contains a list of all of the Windows NT users.

After the file has been created, on the Tools menu, click Directory Import. When
you import this list, all of the recipient mailboxes are restored. You may want
to run the Consistency Adjuster again after this step.

Method Two:

If you do not have access to the Windows NT user accounts for these recipients,
you must manually re-create all of the Windows NT user accounts with the same
user names. Then, start the Exchange Server Administrator program, and then
click "Extract Windows NT Account List" on the Tools menu. Make sure that you
extract the user list from the domain, and not from the local computer. This
procedure enables you to create a file that contains a list of all of the
Windows NT users.

After the file has been created, on the Tools menu, click Directory Import. When
you import this list, all of the recipients? mailboxes are restored.

After you complete either of these methods, if the mailbox has not been restored,
you may have created a user account that has a name that is different from the
previous Exchange Server recipient.

At this point, the server should be functioning, and users should be able to
retrieve e-mail.

Using the ExMerge Utility
-------------------------

If the information store starts, but there are other issues, use the ExMerge
utility to export all of the user's mailboxes to .pst files. Then, merge the
.pst files to user mailboxes in a newly created Priv.edb file. If you use
offline storage for mail (.ost files), you need to move the .ost files to a .pst
file before you start this procedure to prevent you from losing any .ost data.
Before you use the ExMerge utility, be aware that ExMerge enables you to move
user mailboxes only. You cannot use ExMerge to move specific Exchange Server
configuration properties such as connector settings, Outlook settings, or
client-side rules. You cannot use ExMerge.exe to move distribution lists,
memberships in those distribution lists, or public folders. If you attempted
this procedure, you must re-create or reconfigure the distributions lists
manually. This procedure also destroys your single instance store for messages
up to that point. As a result, the Exchange Server databases run the risk of
growing substantially.

For additional information about the ExMerge utility, click the article number
below to view the article in the Microsoft Knowledge Base:

  Q174197 XADM: Microsoft Exchange Mailbox Merge Program (Exmerge.exe)
  Information

To download the ExMerge utility, visit the following Microsoft Web site:

  http://download.microsoft.com/download/exch55/utility/q224493/nt4alpha/en-us/iloveyouhlpi.zip
  (http://download.microsoft.com/download/exch55/utility/q224493/nt4alpha/en-us/iloveyouhlpi.zip)

NOTE: This version of ExMerge was publicly used to deal with the "Love Bug"
virus. This is why the download is named Iloveyouhlpi.zip.

After you have downloaded and extracted the ExMerge utility, delete the
Exmerge.ini file that was placed in the extract folder for ExMerge. This
procedure prevents errors from occurring while you are running the ExMerge
utility. Next, follow these steps:

1. Make sure no users are currently accessing e-mail or have their e-mail client
  programs running.

2. Run ExMerge using step one of the two-step merge, and then enter all users.

3. When ExMerge is finished, stop the Exchange Server information store service,
  and then go into the ExchSrvr\Mdbdata folder and rename the Pub.edb and
  Priv.edb files. Delete all other files in this folder. Make sure that you do
  not delete the renamed Pub.edb and Priv.edb files until after you are sure
  the merge completed successfully.

4. Restart the Exchange Server information store service.

5. Start Outlook on a client computer, and then send an e-mail message to all of
  the users in the Exchange Server global address book.

  NOTE: If you do not complete this step, the second step of the ExMerge
  two-step merge does not show that there are any available mailboxes to
  restore.

6. Run ExMerge using step two of the two-step merge, and then enter all users.
  When this process is complete, the e-mail that was in the .pst files are
  moved to Exchange Server mailboxes.

You should now have a new Priv.edb file that contains fresh copies of all mail
messages.

For additional information about restoring the Exchange Server information store,
click the article numbers below to view the articles in the Microsoft Knowledge
Base:

  Q231299 XADM: Information Store Returns Service-Specific Error 335544375

  Q162354 XADM: DS_E_COMMUNICATIONS_PROBLEM Running ISINTEG -PATCH

  Q172813 XADM: Troubleshooting High CPU Utilization By Store.exe

  Q242364 XADM: Information Store Does Not Start After an Offline
  Defragmentation With 4294966277

  Q237767 XADM: Making and Restoring Offline Backups

  Q219419 XADM: Information Store Stops Unexpectedly and Cannot Be Repaired

For more information about Exchange Server disaster recovery, refer to the
following white paper that is located at the following Microsoft Web site:

  http://www.microsoft.com/exchange/techinfo/administration/55/BackupRestore.asp

For more information about the Isinteg.exe and Eseutil.exe utilities, refer to
the documents that are located at the following path on the Exchange Server
CD-ROM:

  <CD Drive>\ExchSrvr\Server\Support\Utils

The files are called Eseutil.rtf and Isinteg.rtf

Additional query words: IS, smallbiz, SBS GAB .edb pub.edb priv.edb .ost .log isinteg.exe and eseutil.exe

======================================================================
Keywords          : kberrmsg exc55 
Technology        : kbAudDeveloper kbExchangeSearch kbExchange550 kbZNotKeyword2 kbSBServSearch kbSBServ450
Version           : :4.5,5.5
Issue type        : kbhowto

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.