How to recover the information store on Exchange 2000 Server or Exchange Server 2003 in a single site (313184)



The information in this article applies to:

  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Server
  • Microsoft Small Business Server 2000

This article was previously published under Q313184
For a Microsoft Exchange Server 5.5 and Microsoft Backoffice Small Business Server 4.5 version of this article, see 272570.

SUMMARY

This step-by-step article describes how to recover your data from information store corruption by using an offline restore procedure in Microsoft Exchange 2000 Server and Microsoft Exchange Server 2003.

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

When corruption occurs in Exchange 2000 Server and Exchange Server 2003, the information store is one of the most frequently affected components. The information store is made up of the following four database files:
  • Priv1.edb
  • Priv1.stm
  • Pub1.edb
  • Pub1.stm
The Priv1.edb database file contains both in-process and stored non-SMTP messages. The Priv1.stm database file contains the Simple Mail Transfer Protocol (SMTP) mail messages, both those that are in process and those that are stored on the server. The Pub1.edb database file contains the public folder store for non-SMTP formatted data. The Pub1.stm contains the public folder store SMTP formatted information.

For more information about backing up and restoring these files, click the following article number to view the article in the Microsoft Knowledge Base:

296788 Offline backup and restoration procedures for Exchange

Typically, corruption involves one or both of the .edb (Exchange 2000 Server and Exchange Server 2003 database) files. In most cases, either the Priv1.edb file or the Pub1.edb file (both of which are located in the Program Files\Exchsrvr\Mdbdata folder) is corrupted.

When the information store is corrupted, the following symptoms may occur:
  • The Microsoft Exchange Information Store service does not start.
  • You cannot stop the Information Store service, and you also cannot stop dependent services such as Post Office Protocol version 3 (POP3) and Internet Message Access Protocol, Version 4rev1 (IMAP4).
  • The information store stops responding, and the CPU usage level remains at 100 percent.
  • Clients cannot retrieve or send e-mail, even if you stop and then restart the Information Store service.
  • When you try to restore the Exchange 2000 Server and Exchange Server 2003 databases from an offline backup, and then run the Information Store Integrity Checker utility (Isinteg.exe) patch, you may receive the following error message:
    Error 4294966746: JET_errDatabaseInconsistent
  • When you try to mount the mailbox store in Exchange System Manager, you receive an error message that is similar to the following:
    Unable to Mount the Mailbox Store with error c104173c "The Information Store is Busy"
When you use Exchange System Manager to try to mount the database, you may receive the following error message:
An internal processing error has occurred. Try restarting the Exchange System Manager or the Microsoft Exchange Information Store service, or both.

ID no: c1041724
Exchange System Manager

Event ID: 9175
Source Exchange SA
Description: The MAPI call openmsgstore failed with the following error - network problems or the MSE server computer is down for maintenance.
The procedure that is described in this article is based on a single server and single site scenario that has the following qualities:
  • A site connector is not being used.
  • Site replication is disabled (a single site is in use).
  • An offline copy of both the Pub1.edb file and the Priv1.edb file exists.
  • A Key Management server (KM server) is not being used.
  • The server is running Microsoft Small Business Server 2000.
However, the principles can apply to most other Exchange 2000 Server and Exchange Server 2003 computers that are set up in a single organization, single site configuration.

Note This procedure is not designed to restore connector settings.

Use the procedures that are described in this article 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 2000 database (less than 1 gigabyte [GB]), make copies of the Pub1.edb, Pub1.stm, Priv1.edb, and Priv1.stm 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.

Troubleshooting the information store

  1. Try to start the Microsoft Exchange Information Store service. Record any error and event IDs that are reported.
  2. Make sure that the Information Store service is stopped before you run the Eseutil.exe program that is mentioned in step 3.

    Note If the Information Store service stops responding (hangs) in a starting state, you can stop the service by disabling it and restarting the server. To disable the Information Store service, follow these steps:
    1. Click Start, point to Programs, point to Administrative Tools, and then click Services.
    2. Double-click the Microsoft Exchange Information Store service, and then click Disabled in the Startup type box.
    3. Click OK.
  3. 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. Instead, the log files may be missing, damaged, or not yet committed to the database. Run the following commands to check the consistency of the public and private databases (these lines have been wrapped for readability).

    C:\Program Files\exchsrvr\BIN>eseutil /mh
    "drive:\Program Files\exchsrvr\MDBDATA\priv1.edb"


    C:\Program Files\exchsrvr\BIN>eseutil /mh
    "drive:\Program Files\exchsrvr\MDBDATA\pub1.edb"

    Note This example assumes that you are running the programs in the Program Files\ExchSrvr\Bin folder on drive C, and that the .edb files are in the Program Files\ExchSrvr\Mdbdata folder.

    If you have performed an upgrade, the database files may be located in the C:\Exchsrvr\Mdbdata folder. If the databases have been optimized, they may be located on another drive.

    To verify that the .edb file is consistent, check the output line that is labeled "State." If you want to send the output of this command directly to a text file, you can modify the command line as follows (the following lines have been wrapped for readability).

    C:\Program Files\exchsrvr\BIN>eseutil /mh
    C:\Program Files\exchsrvr\MDBDATA\priv1.edb > mypriv.txt


    C:\Program Files\exchsrvr\BIN>eseutil /mh
    C:\Program Files\exchsrvr\MDBDATA\pub1.edb > mypub.txt

    To display the text directly on the screen, add | more to the end of the command.

    If the Pub1.edb file and the Priv1.edb file are not located in the Program Files\ExchSrvr\Mdbdata folder on the same drive as the ExchSrvr\Bin folder that you are running the command from, replace the "C:\program files\mdbdata\priv1.edb" portion of the command with the full path of the Priv1.edb file. Make the same changes for Pub1.edb. If both the Pub1.edb file and the Priv1.edb file are consistent, go to step 6.

    If one of the databases is inconsistent, try to perform a soft recovery of the files to see if there are copies of the log files stored in the Mdbdata folder.

    Note If you do not have the log files, you cannot complete the soft recovery process. Go to step 6. You must also start the Information Store service.

    When you perform a soft recovery, any uncommitted log files are committed to the information store database.

    To initiate a soft recovery, run the following command.

    Open the folder where the database and log files reside, and then type the following at a command prompt. The following line has been wrapped for readability.

    C:\Program Files\exchsrvr\MDBDATA>"C:\Program Files\exchsrvr\BIN\eseutil" /r E00

    Click Yes to run the repair. The utility displays the following message:

    Microsoft (R) Exchange Server(TM) Database Utilities
    Version 6.0
    Copyright (C) Microsoft Corporation 1991-2000.  All rights reserved.
    
    Initiating RECOVERY mode...
         Logfile base name: E00
                 Log Files: (current directory)
               System files: (current directory)
    
    Performing soft recovery...
    						

    When the soft recovery is complete, the program displays the message:

    Operation completed successfully in x.xxx seconds.

    You can use this command 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 command again. If the state has changed to "Consistent" for both the public information store and the private information store, go to step 5.
  4. If either of the databases is inconsistent, and the eseutil /r command does not return them to a consistent state, use the procedure that is described in this step.

    Note When you use the following command, you may lose some Exchange 2000 Server or Exchange Server 2003 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. Microsoft recommends that you use this command only if the public information store or the private information store does not return to a consistent state after you perform the steps described earlier in this article.

    At the command prompt, type the following commands (the following lines have been wrapped for readability):
    1. To bring the Priv1.edb file back into a consistent state:

      C:\Program Files\exchsrvr\MDBDATA>"C:\Program Files\exchsrvr\BIN\eseutil" /p priv1.edb

    2. To bring the Pub1.edb file back into a consistent state:

      C:\Program Files\exchsrvr\MDBDATA>"C:\Program Files\exchsrvr\BIN\eseutil" /p pub1.edb

    3. Click Yes to run the repair. The utility displays the following message:

      Microsoft (R) Exchange Server(TM) Database Utilities
      Version 6.0
      Copyright (C) Microsoft Corporation 1991-2000.  All right reserved.
      
      Initiating REPAIR mode...
              Database: priv1.edb
        Streaming File: priv1.stm
        Temp. Database: TEMPREPAIR1820.EDB
      
      Checking database integrity.
      
                           Scanning Status (% complete)
          0    10   20   30   40   50   60   70   80   90   100
          |----|----|----|----|----|----|----|----|----|-----|
          ....................................................
      							

    When the procedure is complete, the program displays the message:

    Integrity check successful.

    Note The .stm files are automatically included in the repair process.
  5. Delete all .log files in the Mdbdata folder, delete the .chk file, and then delete the Temp.edb file (if it exists).
  6. Mount the databases one time, and then immediately dismount them to so that users cannot access them during this procedure.

    Note You may stop the SMTP service before you mount the databases to prevent new e-mail messages from coming in to the databases. When you run a Hard Repair (eseutil /p), and the repair actually detects and removes database corruption, you should run an offline defragmentation after the repair and before you do anything else.
  7. Stop the Information Store service and run a defragmentation of the private and public store databases. You must run this step if you are low on disk space.

    Note You must have free disk space equal to at least 110% of the database size to run eseutil /d. If you do not designate a temporary location for the database file by using the "t" command, the temporary location is automatically set to the Exchsrvr/Bin folder.

    At a command prompt, type the following commands (the following lines have been wrapped for readability):
    1. To defragment Priv1.edb:

      C:\Program Files\exchsrvr\BIN>eseutil /d
      C:\Program Files\exchsrvr\MDBDATA\priv1.edb

    2. To defragment Pub1.edb:

      C:\Program Files\exchsrvr\BIN>eseutil /d
      C:\Program Files\exchsrvr\MDBDATA\pub1.edb

    Note If both the private and the public information store databases are large, this step may take some time. If you receive an error message that indicates a lack of disk space when you try to perform this step, copy the Program Files\ExchSrvr\Bin folder to a drive that has more disk space, and then try to run the command from that location. For more information about how to resolve this error message, click the following article number to view the article in the Microsoft Knowledge Base:

    192185 How to defragment with the Eseutil utility (Eseutil.exe

  8. Use Isinteg.exe to fix the Pub1.edb database and the Priv1.edb database. The Isinteg.exe utility runs a test on all areas of each of the databases and reports the results. Isinteg.exe also tries to fix any issues that are encountered.
    • To fix Priv1.edb, type the following command at a command prompt (the following line has been wrapped for readability):

      C:\Program Files\exchsrvr\BIN>isinteg -s (servername) -fix -test alltests

    Note To obtain or confirm the server name, type the following command at a command prompt on the server:

    nbtstat -n

    You are prompted to select the database to be checked.

    Index       Status       Database-Name
    Storage     Group Name:  First Storage Group
      1         Offline      Mailbox Store (servername)
      2         Offline      Public Folder Store (servername)
    Enter a number to select a database or press Return to exit.
    						

    You can only check databases that are marked as offline. The Information Store service must be started, but the information store must be dismounted.

    When you select a database, you are prompted with the following message to confirm the selection:

    "You have selected First Storage Group / Mailbox Store <servername>
    Continue? (Y/N)"
    
    Press <B>Y</B> and <B>Enter</B> to start checking the selected database.
    						

    You receive a summary report that 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 reported and the report looks similar to the following text:

    Test reference table construction result:
    0 error(s); 0 warning(s); 0 fix(es); 0 row(s); time: 0h:0m:0s
    Test Folder Result: 
    0 error(s); 0 warning(s); 0 fix(es); 101 row(s); time: 0h:0m:0s
    
    Now in test 3 (reference count verification)of total 3 tests;
    100% complete.
    						

    Note In some cases the same warnings, errors, or fixes may be 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 that does not prevent you from starting the information store.

    If you can start the Information Store service, and the information store is stable, and the same errors and warnings are reported after you have run Isinteg.exe several times, use the ExMerge utility to rebuild the information store by exporting the data into .pst format, and then re-importing it into new or clean database structures. The information about how to use the ExMerge utility is included later in this article.

    Note Exchange 2000 Server and Exchange Server 2003 no longer implement the Isinteg utility in conjunction with the -patch option. A patch is performed automatically by Store.exe when the information store starts. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

    251409 Isinteg -patch is no longer required to restore offline backups

  9. Restart the information store.
For more information about how to repair an Exchange Server database, click the following article number to view the article in the Microsoft Knowledge Base:

812357 How to maintain your Exchange database after you repair by using the Eseutil /p tool in Exchange Server 5.5, in Exchange 2000 Server, and in Exchange Server 2003

Using the consistency adjuster

Earlier versions of Exchange Server use the DS/IS consistency adjuster to create user objects in the folder from an information store database. In Exchange 2000, the Mbconn.exe utility provides the same functionality. For more information, see the Mailbox Reconnect Help file (Mbconn.chm) located in the CD Drive\ExchSrvr\Server\Support\Utils\i386 folder, or click the article number below to view the article in the Microsoft Knowledge Base:

271886 How to use the Mbconn utility to generate Active Directory accounts for information store mailboxes



Note The Mailbox Recovery Center in Exchange Server 2003 takes the place of the MBCONN utility used with Exchange 2000 Server. For more information, see the Exchange Server 2003 help files.

You can use Eseutil with the /G switch to verify the integrity of the information store. For more information about the available switches, click the following article number to view the article in the Microsoft Knowledge Base:

182903 ESEUTIL command line parameters

Using the Exchange 2000 Directory Service Integrity Checker (E2kdsinteg)

The E2kdsinteg utility was first included in Exchange 2000 SP2. This utility reports on the health of Active Directory after Exchange 2000 or the Exchange 2000 Active Directory Connector (ADC) is installed and is running. The E2kdsinteg utility generates simple report in text file format that documents anomalies or suspect objects. E2kdsinteg does not make changes to any objects in Active Directory. Depending on the number of mail-enabled objects and configuration objects in Active Directory, it may take a substantial period of time to process the mail-enabled objects.

In Exchange Server 2003, the ConfigDSInteg tool runs the E2kDSInteg configuration object to examine Active Directory configuration objects. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

812593 Exchange Server 2003 Deployment Tools overview

Using the ExMerge utility

If the information store starts, but there are other issues, you can use the ExMerge utility to export all the user's mailboxes to .pst files. Then, merge the .pst files to user mailboxes to a newly created Priv1.edb file. You can also move the public folder contents in this manner.

If you use offline storage for e-mail (.ost files), you must move the .ost files to a .pst file before you start this procedure to prevent the loss of any .ost data.

Before you use the ExMerge utility, be aware that you can use ExMerge to move only user mailboxes. You cannot use ExMerge to move specific Exchange 2000 Server and Exchange Server 2003 configuration properties such as connector settings, Outlook settings, or client-side rules. You also cannot use ExMerge to move distribution lists, memberships in those distribution lists, or public folders. You can move public folder contents into a user's personal folders to include the public folder information in the merged .pst file. If you try this procedure, you must re-create or reconfigure the distribution lists manually.

Note This procedure also removes the single instance store for messages that were received up to that point. As a result, the Exchange 2000 Server and Exchange Server 2003 databases may grow and require more disk space.

For more information about the ExMerge utility, click the following article numbers to view the articles in the Microsoft Knowledge Base:

174197 Microsoft Exchange Mailbox Merge Program (Exmerge.exe) information

316279 Tools that are included with the Exchange 2000 Server CD-ROM

823143 How to configure the administrator account to use Exmerge 2003 in Exchange 2003

273642 ExMerge does not work unless you have Receive As and Send As permissions on the store

The ExMerge utility is available on the Exchange 2000 CD in the Support\Utils folder under the subfolder for your platform. Microsoft recommends that you use the ExMerge utility from the latest Exchange 2000 service pack.

Note For Small Business Server 2000 users, the ExMerge utility is available in the Exchsrvr60\Support\Utils\I386\Exmerge folder on CD #3. There is also a Microsoft Word document named Exmerge.doc that provides more detailed information about how to use this utility. For Exchange Server 2003 users, visit the following Microsoft Web site to download Exmerge.exe: Copy these files to the\Exchsrvr\Mdbdata\Bin folder, and then follow these steps:
  1. Make sure that there are no users who are currently accessing e-mail or have their e-mail client programs running.
  2. Run ExMerge by using step one of the two-step merge, and then enter all the users.
  3. When the ExMerge process is complete, stop the Exchange 2000 Server or Exchange Server 2003 Information Store service, locate and open the ExchSrvr\Mdbdata folder, and then rename the Pub1.edb and Priv1.edb files.

    Delete all the other files in this folder. Make sure that you do not delete the renamed Pub1.edb and Priv1.edb files until you are sure that the merge was successful.
  4. Restart the Exchange 2000 Server or Exchange Server 2003 Information Store service.
  5. Start Outlook on a client computer, and then send an e-mail message to all the users in the Exchange 2000 Server or Exchange Server 2003 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 the users.

    When this process is complete, the e-mail messages that were in the .pst files are moved to Exchange 2000 Server or Exchange Server 2003 mailboxes.
You have a new Priv1.edb file that contains copies of all the e-mail messages.

Note If the users log on to blank mailboxes, the accounts may not be connected to the newly created mailboxes. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

278447 Users are connected to empty mailboxes after a failed upgrade

Re-creating the Pub1.edb database

  1. From a client such as Outlook, copy the public folders to the user's personal folders on the client.
  2. Stop the Information Store service, and then rename the existing Pub1.edb and Pub1.stm files.
  3. To create the new Pub1.edb, mount the public folders database.
  4. Click OK to create the new Pub1.edb.

    Note You must reinstate any permissions on the public store. For more information if the new database is not created automatically, click the following article number to view the article in the Microsoft Knowledge Base:

    261329 Information store files are not created automatically at information store startup

  5. From the client, move the folders back into the new public folder structure on the server.
For more information about restoring the Exchange 2000 information store, click the following article number to view the article in the Microsoft Knowledge Base:

316794 Exchange 2000 Service Pack 2 does not allow you to restore Exchange 2000 or Exchange 2000 Service Pack 1

253914 How to view the contents of the Restore.env file

258529 Event IDs 9519 and 8012 when starting the information store

251403 Database does not mount after you restore an offline backup

253931 Mounting a database after restore fails with error message c1041724

For more information about Exchange 2000 disaster recovery, visit the following Microsoft Web site: For more information about the Isinteg.exe and Eseutil.exe utilities, see the documents at the following locations on the Exchange 2000 CD:

CD Drive\ExchSrvr\Server\Support\Utils\Eseutil.rtf

CD Drive\ExchSrvr\Server\Support\Utils\ReadMe.doc

Important After you can access both e-mail and public folders, perform and verify a successful backup as soon as you can.

Best practices

Information Store scheduled maintenance

Microsoft recommends that you move any scheduled maintenance to a different time slot than the time that the backup process runs. If you run both the scheduled maintenance and the backup process at the same time, it can cause issues with the Exchange 2000 Server or Exchange Server 2003 databases.

To change the scheduled maintenance times for the information stores:
  1. In Exchange System Manager, right-click Mailbox Store.
  2. Click the Database tab.
  3. Click the Customize button.
  4. Repeat steps 1 through 3 for Public Folder Store.
Microsoft recommends that you run Exchange 2000 Server or Exchange Server 2003 maintenance one time a week, especially when there are only a few users at the site.

Keeping up to date with service packs

You can use Exchange 2000 Server and Exchange Server 2003 service packs to keep your Exchange Server system up to date. For more information about Exchange 2000 Server and Exchange Server 2003 service packs, visit the following Microsoft Web site:

REFERENCES

For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base:

192185 How to defragment with the Eseutil utility (Eseutil.exe)

244525 How to run Eseutil on a computer without Exchange Server

254132 Eseutil /d defragments the database and the streaming file

255224 You receive a "Usage Error: Invalid argument" if the storage group folder name in the path contains spaces when you run Eseutil in Exchange 2000 Server

297336 How to use the Eseutil utility to checksum a streaming file

256352 Online defragmentation does not reduce size of .edb files

327156 Error message: The database files in this storage are inconsistent


Modification Type:MajorLast Reviewed:9/7/2005
Keywords:kbHOWTOmaster KB313184 kbAudITPRO