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:
For more information about backing up and restoring these files, click the following article number to view the article in the Microsoft Knowledge Base:
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"
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.
- 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.
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
- Try to start the Microsoft Exchange Information Store service. Record any error and event IDs that are reported.
- 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:
- Click Start, point to Programs, point to Administrative Tools, and then click Services.
- Double-click the Microsoft Exchange Information Store service, and then click Disabled in the Startup type box.
- Click OK.
- 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 /mhNote 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.
C:\Program Files\exchsrvr\BIN>eseutil /mh
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 /mhTo display the text directly on the screen, add | more to the end of the command.
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
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 E00Click Yes to run the repair. The utility displays the following message:When the soft recovery is complete, the program displays the message:
Microsoft (R) Exchange Server(TM) Database Utilities
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...
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.
- 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):
Integrity check successful.Note The .stm files are automatically included in the repair process.
- 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
- 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
- Click Yes to run the repair. The utility displays the following message:
Microsoft (R) Exchange Server(TM) Database Utilities
Copyright (C) Microsoft Corporation 1991-2000. All right reserved.
Initiating REPAIR mode...
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
- To bring the Priv1.edb file back into a consistent state:
- Delete all .log files in the Mdbdata folder, delete the .chk file, and then delete the Temp.edb file (if it exists).
- 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.
- 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):
192185 How to defragment with the Eseutil utility (Eseutil.exe
- To defragment Priv1.edb:C:\Program Files\exchsrvr\BIN>eseutil /d
- To defragment Pub1.edb:C:\Program Files\exchsrvr\BIN>eseutil /d
- To defragment Priv1.edb:
- 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.
nbtstat -nYou are prompted to select the database to be checked.You can only check databases that are marked as offline. The Information Store service must be started, but the information store must be dismounted.
- 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
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.
When you select a database, you are prompted with the following message to confirm the selection: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:
"You have selected First Storage Group / Mailbox Store <servername>
Press <B>Y</B> and <B>Enter</B> to start checking the selected database.
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.
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;
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
- To fix Priv1.edb, type the following command at a command prompt (the following line has been wrapped for readability):
- Restart the information store.
Using the consistency adjusterEarlier 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:
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:
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:
Using the ExMerge utilityIf 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:
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:
- Make sure that there are no users who are currently accessing e-mail or have their e-mail client programs running.
- Run ExMerge by using step one of the two-step merge, and then enter all the users.
- 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.
- Restart the Exchange 2000 Server or Exchange Server 2003 Information Store service.
- 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.
- 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.
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:
Re-creating the Pub1.edb database
- From a client such as Outlook, copy the public folders to the user's personal folders on the client.
- Stop the Information Store service, and then rename the existing Pub1.edb and Pub1.stm files.
- To create the new Pub1.edb, mount the public folders database.
- 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
- From the client, move the folders back into the new public folder structure on the server.
Information Store scheduled maintenanceMicrosoft 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:
- In Exchange System Manager, right-click Mailbox Store.
- Click the Database tab.
- Click the Customize button.
- Repeat steps 1 through 3 for Public Folder Store.