Microsoft KB Archive/810190

From BetaArchive Wiki

Article ID: 810190

Article Last Modified on 10/25/2007



APPLIES TO

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








SYMPTOMS

You may experience one or more of the following symptoms on your Microsoft Exchange 2000 Server or Exchange Server 2003 computer:

  • The Information Store service may not start and you may receive the following error message:

    1067 The information store terminated abnormally.

  • During online defragmentation the following event is generated in the application log of Windows Event Viewer:

    Date:      date        Source:   ESE
    Time:      time        Category: (12)
    Type:      Error       Event ID: 447
    User:      N/A
    Computer:  Servername
    
    Description:
    Information Store (nnnn) A bad page link (error -327) has been detected in a
    B-Tree (ObjectId: 19, PgnoRoot: 113) of database E:\Program 
    Files\Exchsrvr\mdbdata\priv1.edb (3440582 => 3443648, 3443232).
    


    -or-

    Date:      date        Source:   ESE
    Time:      time        Category: Database Corruption
    Type:      Error       Event ID: 447
    User:      N/A
    Computer:  Servername
    
    Description:
    Information Store (nnnn) A bad page link (error -338) has been detected in a 
    B-Tree (ObjectId: 70950, PgnoRoot: 157120) of database e:\Program 
    Files\exchsrvr\mdbdata\priv1.edb (157120 => 296404, 296403).


CAUSE

This problem is frequently caused by a hardware failure or by antivirus scanning of the database file directory. Event ID 447 indicates that the logical database structure has become corrupted. This may occur for one or more of the following reasons:

  • Disk caching has not committed transactions to the hard disk and the server has stopped responding (crashed).
  • Incorrect log files were replayed during a database restoration.
  • The server has a defective hard disk controller.


Note A defective hard disk controller is typically indicated by disk input/output (I/O) errors that are listed in the application and system logs.

  • Database log files have been removed that were not fully committed to the database.

Because logical database structure corruption is not detected by the backup program, you may not immediately become aware of the problem. It only appears when a user tries to access the page that the data is stored on.

RESOLUTION

If you receive these errors in your application log, it is best if you restore from an online backup as soon as you can and avoid using the database. A bad page link error signifies logical corruption at the Jet level in the database.

Note The restore must be performed by using a backup that was created before this error occurred. In a worst-case scenario where no good backup exists, you may have to do a hard repair by running the eseutil.exe /p command. After the hard repair, do an offline defragmentation of the database by running the eseutil /d command, and then run the isinteg -fix command on the database. Contact Microsoft Product Support Services if you need help assistance with this sequence of tasks: hard repair, defragmentation, and isinteg -fix. Or, if the problem persists, Microsoft Product Support Services

Note It is best if you restore the database from a backup. However, if you do not have a valid backup, follow the steps to repair the damaged database. Make sure that you have performed a full online backup of your Exchange 2000 information store or an offline backup of your existing information store databases before you follow these steps. If you do not have a valid online backup, as a last resort you must repair the information store databases. Only repair the database if you have no other alternative, because you will lose data because of the way the repair process deletes a whole page that includes the corrupted data that is on the page and any valid data on the page. If you must repair the corrupted Information Store database, follow these steps:

  1. Start the Information Store service if it is not already started.

    Note In some cases, you may not be able to start the Information Store service until you click to select the Do not mount this store at start-up check box on the Database tab of the database Properties dialog box in Exchange System Manager.
  2. Start Exchange System Manager, and then dismount the corrupted private database (if it is not already dismounted).

    For example, dismount the Priv1.edb database.
  3. Run the eseutil /p command against the dismounted database file. To do so:
    1. Click Start, click Run, type cmd in the Open box, and then click OK.
    2. Open the Program Files\Exchsrvr\Bin folder.

      For example, type cd\program files\exchsrvr\bin, and then press ENTER.
    3. Type eseutil /p "c:\program files\exchsrvr\mdbdata\priv1.edb" (where c:\program files\exchsrvr\mdbdata is the path of the database file, and where priv1.edb is the name of the database file), and then press ENTER.
    4. Click OK to continue with the repair operation.
    5. Type eseutil /d "c:\program files\exchsrvr\mdbdata\priv1.edb" (where c:\program files\exchsrvr\mdbdata is the path of the database file, and where priv1.edb is the name of the database file), and then press ENTER.

      Note While the /d switch is used with the Eseutil command to defragment a database, the actual work that the Eseutil program does is to create a new database to store the defragmented information in. It then replaces the existing database with the new copy. This is helpful in this case because the existing database structure may be corrupted.
  4. Back up the original database files.
  5. Start Exchange System Manager, and then mount the database.
  6. Dismount the database.
  7. At the command prompt, run the isinteg -s servername -fix -test alltests command against the database that is experiencing the problem. To do so, follow these steps:
    1. At the command prompt, change to the Program Files\Exchsrvr\Bin folder.
    2. Type isinteg -s servername -fix -test alltests (where servername is the host name of the Exchange 2000 computer), and then press ENTER.
    3. Press the number that corresponds to the storage group name that you want to repair, and then press ENTER.
    4. Press Y to confirm the selection, and then press ENTER.
    5. Repeat the isinteg command until the number of database fixes reaches 0 (zero) or does not change.
    6. Quit the command prompt.
  8. Start Exchange System Manager and then mount the database.

In some cases, after the previous "hard repair" operation, you may experience symptoms that the Isinteg utility cannot fix, such as messages that disappear or services that do not respond (hang). If these symptoms occur, you may want to use the Microsoft Exchange Mailbox Merge utility (Exmerge) to export the data from the database, to create a new database, and then to import the data into it. To do this, follow these steps:

Note Resetting an information store database may cause users to partially or to completely lose functionality related to rules, Offline Files, delegate permissions, and custom forms.

  1. Copy the three files that are located in the Support\Utils\I386\Exmerge folder on the Exchange 2000 CD or on an Exchange 2000 service pack CD to the \Program Files\Exchsrvr\Bin folder that is located on the hard disk where you installed Exchange.

    Note For detailed information about how to install and use the Mailbox Merge utility, view the Exmerge.doc file that is contained in the Support\Utils\I386\Exmerge folder on the Exchange 2000 CD or on an Exchange 2000 service pack CD.
  2. Mount the store if it is not already mounted.
  3. Grant your administrative account Receive As and Send As permissions to the mailboxes that are in the database that you want to export messages from. To do so, follow these steps:
    1. Start Exchange System Manager, and then locate the container that contains the database that you want.
    2. Right-click the database, and then click Properties.
    3. Click the Security tab, click your account in the Name list, and then click to select the Send As and the Receive As check boxes under Allow in the Permissions list.
    4. Click Apply, click OK, and then quit Exchange System Manager.
  4. Start Windows Explorer, locate the folder that contains the Exmerge.exe file (by default, C:\Program Files\Exchsrvr\Bin), and then double-click Exmerge.exe.
  5. Click Next, click Extract or Import (Two Step Procedure), and then click Next.
  6. Click Step 1: Extract data from an Exchange Server Mailbox, and then click Next.
  7. Type the name of the Exchange 2000 computer in the Microsoft Exchange Server Name box, and then click Options.
  8. On the Data tab, click to select the following check boxes:
    • User messages and folders
    • Associated folder messages
    • Folder permissions
    Note The Items from Dumpster check box is for recoverable items that have been deleted by users when the Deleted Item Recovery option is enabled. This option requires more space on the destination partition.
  9. Click the Import Procedure tab, and then click the option that you want to use to import data into the target store. The Merge data into the target store option is the most frequently used option. By default, it is selected.
  10. Click the Dates tab, and then click All (if it is not already selected).
  11. Click Apply, click OK, and then click Next.
  12. Click Select All, verify that all the users are selected, and then click Next.
  13. Verify that the Default locale selection is correct, and then click Next.
  14. On the Target Directory page, click a partition that has sufficient space to store the .pst files that are exported.

    You can also direct the .pst files to another server if you do not have space on the local drive. If this is the case, make sure to map a drive to the remote location. If you copy the .pst files to another server, the time that it takes to run the process increases substantially.
  15. Click Next, click Next, and then click Finish when the export procedure completes.
  16. Stop the Information Store service, and then back up or rename the database files that you experienced problems with.

    Important The database may be stored on one partition and the log files on another partition. You can move these files to another server or rename them, but Microsoft recommends that you keep a copy of your original database and of your log files until you have determined that this process has worked correctly.
  17. Start the Information Store service, and then mount the store. This creates another Priv1.edb database file.

    Note In some cases, you may have to restart the Exchange services or to restart the server before you mount the store to be prompted to create an empty database.
  18. Log on to your mailbox and send a test message to all the users who are on the server.

    This step is critical for the Exmerge utility process. This actually creates the mailboxes in the new database.
  19. Start the Exmerge utility, and then click Next .
  20. Click Extract or Import (Two Step Procedure), and then click Next.
  21. Click Step 2: Import data into an Exchange Server Mailbox, and then click Next.
  22. Type the name of the Exchange 2000 computer in the Microsoft Exchange Server Name box, and then click Options.
  23. On the Data tab, click to select the following check boxes:
    • User messages and folders
    • Associated folder messages
    • Folder permissions
  24. Click Apply, click OK, and then click Next.
  25. Click Select All, and then click Next.

    Note If some of the users are not listed on the Mailbox Selection page, they may not have received the e-mail message that you sent to all users. Make sure that you have sent a test message to all users. In this case, quit the Exmerge operation, send the user an e-mail message, and then restart the Exmerge operation.
  26. Verify that the Default locale selection is correct, and then click Next.
  27. Select the folder that contains the .pst files that you exported (for example, C:\Exmergedata), and then click Next.
  28. Click Next, and then click Finish when the import process has completed successfully.
  29. Log on to a number of mailboxes to confirm that their contents were successfully imported.


MORE INFORMATION

Additional Information About the Error Messages That Are Described in the Symptoms Section

Available space in the Exchange Server Information Store database is in the form of a list of pages that can be used to store new data. The available space is named a space tree. The space tree is held as a binary tree (B-Tree) that is searched whenever a block of new data is added to the database. During an online defragmentation, a problem was discovered in this tree (a corrupted page link was detected in a B-Tree).

References

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

301460 Exchange command-line parameters for the Isinteg.exe tool


296788 Offline backup and restoration procedures for Exchange


317014 Exchange 2000 Server Eseutil command line switches


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


265441 Some questions and answers about the Exmerge utility


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


259851 Ramifications of running the eseutil /p or edbutil /d /r command in Exchange


272570 How to recover from information store corruption


For additional information about Exchange 2000 disaster recovery, view the "Disaster Recovery for Microsoft Exchange 2000 Server" document. To view the document, visit the following Microsoft Web site:


Additional query words: Error -338 or -327 XADM

Keywords: kbprb KB810190