DEV Community

Bharat Bhushan
Bharat Bhushan

Posted on

Exchange Database Won't Mount After Shutdown (JET -1018, -1022, 528, 548)

Last Updated: April 2026


Quick Answer

An Exchange database that won't mount after shutdown is almost always in a dirty shutdown state, caused by one of four JET (Extensible Storage Engine) errors:

  • -1018 → Database corruption (checksum mismatch)
  • -1022 → Disk I/O failure
  • 528 → Missing transaction logs
  • 548 → Log file mismatch

Golden Rule: Never run eseutil /p before identifying the exact error. This can permanently delete mailbox data.


Applies To

  • Microsoft Exchange Server 2013
  • Microsoft Exchange Server 2016
  • Microsoft Exchange Server 2019

Why Exchange Databases Fail to Mount

Microsoft Exchange uses the Extensible Storage Engine (ESE) database (.edb) with transaction logs (.log) for crash-safe operations.

How it works:

  • Data is written to logs first
  • Then committed to the database
  • Ensures recovery after failure

What causes failure:

  • Power outage
  • OS crash
  • Storage disconnection
  • Forced service stop

According to Microsoft: According to Microsoft Exchange documentation on database corruption


Step 1: Check Database State

Run eseutil /mh to determine the current database state:

eseutil /mh DBPath.edb
Enter fullscreen mode Exit fullscreen mode
State Meaning Action
Clean Shutdown Safe Mount database
Dirty Shutdown Inconsistent Continue diagnosis

The 4-Layer Failure Model

Every Exchange mount failure belongs to one of four layers:

Layer Error Meaning
Data Layer -1018 Database corruption
Storage Layer -1022 Disk failure
Log Layer 528 Missing logs
Consistency Layer 548 Log mismatch

What is Jet Error -1018?

Jet error -1018 is a database corruption error caused by a checksum mismatch. It occurs when a database page is partially written, storage returns inconsistent data, or external tools modify the database.

Diagnose:

eseutil /g DBName.edb
Enter fullscreen mode Exit fullscreen mode

Recovery:

Method Risk When to Use
Restore backup None Best option
eseutil /p High No backup available
Stellar Repair for Exchange Low Critical recovery

⚠️ eseutil /p permanently deletes corrupted pages — use only as a last resort.


What is Jet Error -1022?

Jet error -1022 is a disk I/O failure caused by storage issues — not database corruption. Exchange cannot access the disk.

Diagnose: Check Event Viewer (IDs: 7, 11, 51) and run chkdsk /f /r

Recovery:

  1. Fix the storage problem first
  2. Copy database to a healthy disk
  3. Run eseutil /mh

⚠️ Never run eseutil on an unstable or failing disk.


JET Error -1018: Checksum Mismatch (Detail)

Diagnose: eseutil /g DBName.edb

Recovery: Restore from backup or use eseutil /p (high risk of data loss)


JET Error -1022: Disk IO Failure (Detail)

Diagnose: Event Viewer + chkdsk

Recovery: Fix disk first, then attempt database repair


Error 528: Missing Transaction Logs

Cause: Required transaction logs are missing, breaking the recovery chain.

Common causes:

  • Circular logging enabled
  • Manual deletion of log files
  • Antivirus quarantine
  • Failed backup job

Diagnose:

eseutil /mh DBName.edb
Enter fullscreen mode Exit fullscreen mode

Check the Log Required: X-Y range and verify which log files exist.

Recovery:

Scenario Solution
Backup exists Restore from backup
Circular logging ON Hard repair (data loss likely)
Partial logs missing Stellar Repair for Exchange

⚠️ Circular logging + crash = no full recovery possible.


Error 548: Log Signature Mismatch

Cause: Log files don't match the database signature.

Common causes:

  • Mixed log files from different databases
  • Improper restore operation
  • DAG misconfiguration

Diagnose:

eseutil /ml logfile.log
eseutil /mh DBName.edb
Enter fullscreen mode Exit fullscreen mode

Fix:

  1. Move mismatched logs to a backup folder
  2. Run eseutil /p followed by eseutil /d

Diagnostic Flow

DB won't mount
  → Run: eseutil /mh
    → Dirty Shutdown?
      → Check error code:
          -1018 → Database repair
          -1022 → Fix disk first
          528   → Restore logs
          548   → Remove mismatched logs
Enter fullscreen mode Exit fullscreen mode

When eseutil Is NOT Enough

  • Causes data loss with /p
  • Cannot recover data from dead disks
  • Requires a complete log chain
  • No granular mailbox recovery

Microsoft recommends using verified backups as the primary recovery method. For critical EDB corruption scenarios, Stellar Repair for Exchange provides granular mailbox-level recovery without data loss.


Prevention

  • Disable circular logging
  • Use UPS (Uninterruptible Power Supply)
  • Monitor disk health proactively
  • Test backups regularly
  • Separate database and log files onto different volumes
  • Use DAG (Database Availability Group) for high availability

JET Errors Summary

Error Cause Fix Risk
-1018 Checksum corruption Repair / Restore High
-1022 Disk I/O failure Fix storage High
528 Missing logs Restore logs High
548 Log mismatch Rebuild / Remove logs Medium

FAQ

What is dirty shutdown?
An inconsistent database state where transactions were not fully written to disk before shutdown.

Is eseutil /p safe?
No. It removes corrupted data permanently and should only be used as a last resort when no backup is available.

Can the Exchange DB be repaired without data loss?
Only if a valid backup exists. Native repair tools (eseutil /p) always involve data loss.

What causes Jet error -1018?
Storage corruption, incomplete page writes, or hardware-level I/O issues.


Final Thought

Exchange failures are predictable — data loss is not. The difference between recovery and disaster is correct diagnosis.

Diagnose first. Repair second.

Top comments (0)