Skip to content
Tech Shizz Logo

An Engineers Blog

  • TechShizz
  • blog

Repair Exchange database after dirty shutdown

Posted on February 23, 2021 By rich No Comments on Repair Exchange database 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:dbmailbox 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 filesexchsrvrmdbdatapriv1.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 filesexchsrvrmdbdatapriv1.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 filesexchsrvrmdbdatapriv1.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

Post navigation

❮ Previous Post: How to clear a print queue that won’t clear
Next Post: How to disable SIP ALG on a Draytek router ❯

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Subscribe to our newsletter!

Recent Posts

  • How to implement a lightning-fast ransomware playbook
  • How to achieve defence in depth in your business
  • How to implement a SecOps team phishing response plan
  • How to block an Office 365 Sign-in correctly
  • Microsoft finally patched serious Exchange 0-day over a month old!

Recent Comments

    Archives

    • November 2022
    • July 2021
    • March 2021
    • February 2021

    Categories

    • Cyber Security
    • Uncategorized

    Meta

    • Log in
    • Entries feed
    • Comments feed
    • WordPress.org

    Copyright © 2023 .

    Theme: Oceanly News Dark by ScriptsTown