Wednesday, June 17, 2009

[Exchange 2007] Integrity Check

So came across an issue recently where our Exchange 2007 Mailbox server was kicking back this error every so often:


Event Type: Error
Event Source: MSExchangeIS Mailbox Store
Event Category: Background Cleanup
Event ID: 1097
Date: 6/10/2009
Time: 4:31:02 PM
User: N/A
Computer: SERVERNAME001
Description:
Error 0x8004010f occurred while cleaning up background folder {folder id} on database "{database name}".

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Data:
--snipped--



As it turns out this can point to a database integrity issue. One or two of these eventlog entries can be ignored, but if they start occuring 2+ times a week or maybe even 4+ times in one month it would serve you well to do an Integrity check to resolve the issue.

This process can take anywhere from 5 minutes to several hours depending on the size of your database and you must take the database down to complete the check (time to check that change calendar before going forward).

1) Take your database offline (note: this is the confirm free version of the command - use with extreme caution - you can omit the -confirm:$false if you would prefer the default would you like to do what you are about to do? protections)


Dismount-Database -identity "{databasename}" -Confirm:$false


2) Issue an Integrity check of the Database (make sure the disk that hosts your database has a good amount of free space - 20% of the file being checked)


ESEUtil /G {full path to database edb file}

The /T paramater can be used to point the temp edb to a seperate drive or even server using an UNC path i.e.:
/T\\server02\temp\temp_db.edb


ESEUtil /G M:\mailboxes\users1.edb



Let the check run till finished.

3) Mount the Database again.


Mount-Database -identity "{databasename}" -Confirm:$false



Enjoy.

No comments:

Post a Comment