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:
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
- 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 /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. - 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):
- 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
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.
- 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):- To defragment Priv1.edb:
C:\Program Files\exchsrvr\BIN>eseutil /d
C:\Program Files\exchsrvr\MDBDATA\priv1.edb
- 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
- 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: 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
- 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:
- 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.
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
- 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.
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:
- 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.
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: