Repair Exchange db after dirty shutdown.

1.

Backup the edb, logs, and stm files

Copy the priv.edb, pub.edb, logs and stm files to an other place.(backup to disk)

 

2.

Make sure you have 110% Free Disk Space

Make sure you have 110% free diskspace from your database. Don´t use shares. you have to fix the priv.edb and pub.edb with the following steps:

 

3.

Check your DB consistency

Make a consistency check on your db.

[ eseutil /mh „path of the priv.edb"] (eseutil /mh “c:\db\mailbox database.edb”)

 

4.

Check the status,

it will be: dirty shutdown.

 

5.

Try Softrepair

try softrepair:

[eseutil /r] – run it from database log folder and specify log chk file (c:\dblog>eseutil /r E00).

or specify following [eseutil /r "prefix"<E00> /l <log file location> /d <database location>]

Eseutil /r E00 /l c:\dblog /d c:\db

 

6.

Check Consistency Again

after softrepair check consistency again.

if everything clear shutdown --> ok (go to step 9)

 

7.

If Softrepair doens't work try hard repair (runs at about 3-5 Gig of data per hour)

if softrepair doesn´t work for you try hardrepair:

[eseutil /p], (Eseutil /p “mailbox database.edb”), Eseutil /p "c:\program files\exchsrvr\mdbdata\priv1.edb"

 

8.

Defragment the DB (runs at about 3 to 5 Gig per hour)

defragmentation of db:

[eseutil /d] (Eseutil /d “mailbox database.edb”)

After running /d you must remove any log files in the MDBDATA folder before mounting the database.

 

9.

Check DB Integrity

If we do not have time (runs at about 2 to 10 minutes per Gig of data) we can skip it after softrecovery.

check the integer of db:

[isinteg -s "servername" -test alltests]

if integer check fails, try [isinteg -s "servername" -fix -test -alltests] do this until all errors have level 0 or the status has no changes. (sometimes it takes 3 rounds to fix all errors )

 

10.

Check Consistency Again

consistency check again.

[eseutil /mh] the result should be: clear shutdown.

 

Action Plan for running a Hard repair of the databases:

 

PN: Ramifications of running the eseutil /p or edbutil /d /r command http://support.microsoft.com/kb/259851

 

1. Make sure the databases are dismounted in ESM.

2. Before running the Hard Repair, I would suggest you to make a copy of the priv1.edb , priv1.stm and pub1.edb , pub1.stm

Now From a command prompt, run eseutil in the repair mode syntax should be:

Eseutil /p "c:\program files\exchsrvr\mdbdata\priv1.edb"

 

-Using ESEUTIL /p is a last resort utility that is only run when databases will not mount due to inconsistancy.

-ESEUTIL /p deletes any data needed (corrupt data or incomplete transactions) to bring the database to a consistent state.

-ESEUTIL /p runs at about 3-5 Gig of data per hour.

-NOTE: Do not click in the command prompt screen, it causes the ESEUTIL process to PAUSE, if this occurs you can press the F5 key to resume.

 

3. Once that completes, run the same command against the pub1.edb file.

4. Run an offline defrag of both databases. The syntax should be:

Eseutil /d "c:\program files\exchsrvr\mdbdata\priv1.edb"

 

-You must have at least 110% free space, relative to the database size to run ESEUTIL /D.

-If you do not designate a temp location using the t command, it defaults to the directory EXCHSRVR/BIN

-ESEUTIL /d runs at about 3 to 5 Gig per hour

-After running /d you must remove any log files in the MDBDATA folder before mounting the database.

 

How to Defragment with the Eseutil Utility (Eseutil.exe) http://support.microsoft.com/?id=192185

5. Once that completes, run the same command against the pub1.edb file.

6. Disable the SMTP service prior to mounting the databases to prevent new email from coming in to the databases.

Mount the databases with the repaired/defraged database.

Logon to make sure you can access one of the mailboxes, but will want to then immediately dismount both of the stores

7. You will then need to run an isinteg to fix any corruption at the store level.

The syntax should be:

Isinteg -s servername -fix -test alltests

 

- ISINTEG Must be run after ESEUTIL /P or ESEUTIL /d to remove logical corruption caused by deletions

- ISINTEG -FIX runs at about 2 to 10 minutes per Gig of data

- Select the database to run the utility against. (The database must be dismounted)

- ISINTEG will create a log file named ISINTEG.PRI in the MDBDATA folder (open with Notepad)

- Note the number of FIXES we get after each run of ISINTEG -FIX. We will need to run this till we get 0 fixes.

- This may take 3 or more times.

- Also note the number of errors we get after each run of ISINTEG -FIX

- Once we get 0 FIXES note the number of errors.

Description of the Isinteg Utility http://support.microsoft.com/?id=182081

 

Name
Message *
Please enter the code:

Note: * Starred fields are required. Never submit passwords in forms!