<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bharat Bhushan</title>
    <description>The latest articles on DEV Community by Bharat Bhushan (@bharat_bsingh_6f4fe7fc7).</description>
    <link>https://dev.to/bharat_bsingh_6f4fe7fc7</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3873990%2F193f4cff-3d0a-49f3-8cef-e6d6bb33be9e.jpg</url>
      <title>DEV Community: Bharat Bhushan</title>
      <link>https://dev.to/bharat_bsingh_6f4fe7fc7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bharat_bsingh_6f4fe7fc7"/>
    <language>en</language>
    <item>
      <title>Exchange Database Won't Mount After Shutdown: The Complete Diagnostic Flowchart (JET -1018, -1022, 528, 548)</title>
      <dc:creator>Bharat Bhushan</dc:creator>
      <pubDate>Sat, 11 Apr 2026 19:39:57 +0000</pubDate>
      <link>https://dev.to/bharat_bsingh_6f4fe7fc7/exchange-database-wont-mount-after-shutdown-the-complete-diagnostic-flowchart-jet-1018-1022-59bg</link>
      <guid>https://dev.to/bharat_bsingh_6f4fe7fc7/exchange-database-wont-mount-after-shutdown-the-complete-diagnostic-flowchart-jet-1018-1022-59bg</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Quick Answer:&lt;/strong&gt; In over 90% of cases, an Exchange database won't mount because of one of four JET (Joint Engine Technology) errors triggered by a dirty shutdown: &lt;strong&gt;-1018&lt;/strong&gt; (page checksum mismatch), &lt;strong&gt;-1022&lt;/strong&gt; (disk I/O failure), &lt;strong&gt;528&lt;/strong&gt; (missing log file), or &lt;strong&gt;548&lt;/strong&gt; (log file mismatch). Each error points to a different failure layer and requires a different recovery path. Running &lt;code&gt;eseutil /p&lt;/code&gt; without diagnosing the exact error first is the most common reason recovery attempts destroy data instead of saving it.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why Exchange Databases Fail to Mount: The Core Mechanic
&lt;/h2&gt;

&lt;p&gt;Microsoft Exchange Server stores all mailbox data in an ESE (Extensible Storage Engine) database — the &lt;code&gt;.edb&lt;/code&gt; file. Every write to the database is first recorded in a transaction log (&lt;code&gt;.log&lt;/code&gt; file) before it's committed to the EDB. This two-phase write process ensures data integrity under normal conditions.&lt;/p&gt;

&lt;p&gt;When Exchange doesn't shut down cleanly — due to a power failure, Windows crash, storage disconnect, or forced process kill — the database enters a &lt;strong&gt;dirty shutdown&lt;/strong&gt; state. In this state, the ESE cannot verify that the in-memory cache was fully flushed to disk, and the database is flagged as inconsistent.&lt;/p&gt;

&lt;p&gt;Exchange's Information Store service will &lt;strong&gt;refuse to mount any database flagged as dirty&lt;/strong&gt;. This is a protection mechanism, not a bug.&lt;/p&gt;

&lt;p&gt;The four JET errors below are how Exchange tells you what specifically went wrong during that inconsistent shutdown.&lt;/p&gt;




&lt;h2&gt;
  
  
  JET Error -1018: Page Checksum Mismatch (JET_errReadVerifyFailure)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What It Means
&lt;/h3&gt;

&lt;p&gt;JET error -1018 is the most common Exchange database corruption error. It occurs when Exchange reads a database page and the checksum stored in that page's header does not match the checksum of the actual data read from disk.&lt;/p&gt;

&lt;p&gt;Every 4 KB page in an Exchange EDB file has a checksum recorded when it was last written. If that checksum doesn't validate on read, it means the page was either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Written incompletely (partial write during a crash)&lt;/li&gt;
&lt;li&gt;Corrupted at the storage layer (bad disk sector, RAID rebuild error, or VM snapshot issue)&lt;/li&gt;
&lt;li&gt;Modified outside of Exchange (improper backup tool, AV scanning, or disk utility)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to Diagnose JET -1018
&lt;/h3&gt;

&lt;p&gt;Run an integrity check on the dismounted database:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;eseutil&lt;/span&gt; &lt;span class="na"&gt;/g &lt;/span&gt;&lt;span class="s2"&gt;"C:\Program Files\Server15\DB\Name\DBName.edb"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the output reports &lt;code&gt;Database is CORRUPT&lt;/code&gt; or lists page-level errors, JET -1018 is confirmed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recovery Options for JET -1018
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Data Loss Risk&lt;/th&gt;
&lt;th&gt;Recommended When&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Restore from verified backup&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Clean backup exists and is current&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;eseutil /p&lt;/code&gt; (hard repair)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;High&lt;/strong&gt; — purges corrupt pages and their mailbox items&lt;/td&gt;
&lt;td&gt;No backup; pages are few and isolated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Third-party EDB repair tool&lt;/td&gt;
&lt;td&gt;Low — repairs structure, preserves mailbox data&lt;/td&gt;
&lt;td&gt;No backup; widespread corruption or critical mailboxes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Critical Warning:&lt;/strong&gt; &lt;code&gt;eseutil /p&lt;/code&gt; resolves the checksum error by &lt;em&gt;deleting&lt;/em&gt; the affected pages — meaning any mailbox items stored on those pages are permanently gone. Microsoft's own documentation states that &lt;code&gt;eseutil /p&lt;/code&gt; should be a last resort and that the resulting database should be treated as suspect.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  JET Error -1022: Disk I/O Failure (JET_errDiskIO)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What It Means
&lt;/h3&gt;

&lt;p&gt;JET error -1022 indicates that Exchange could not read from or write to the physical disk where the EDB file resides. Unlike -1018 (a data integrity problem), -1022 is an &lt;strong&gt;infrastructure problem&lt;/strong&gt; — Exchange is reaching for the data but the storage layer isn't responding.&lt;/p&gt;

&lt;p&gt;Common causes include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Failed or failing hard disk/SSD (check SMART status immediately)&lt;/li&gt;
&lt;li&gt;Disconnected or timed-out SAN/NAS volume&lt;/li&gt;
&lt;li&gt;RAID controller failure or degraded RAID array&lt;/li&gt;
&lt;li&gt;VM storage misconfiguration (especially VMware snapshot chains or thin-provisioned disks reaching capacity)&lt;/li&gt;
&lt;li&gt;Disk I/O queue saturation under extreme load&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to Diagnose JET -1022
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Check &lt;strong&gt;Windows Event Viewer &amp;gt; System&lt;/strong&gt; log for disk error events (Event IDs 7, 11, 51)&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;chkdsk /f /r&lt;/code&gt; on the volume hosting the EDB after dismounting Exchange&lt;/li&gt;
&lt;li&gt;Check SMART data via &lt;code&gt;wmic diskdrive get status&lt;/code&gt; or a tool like CrystalDiskInfo&lt;/li&gt;
&lt;li&gt;If on a SAN, verify connectivity, LUN availability, and multipath status&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Recovery Options for JET -1022
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;⛔ &lt;strong&gt;Do not attempt &lt;code&gt;eseutil&lt;/code&gt; on a disk with active I/O errors.&lt;/strong&gt; The risk of compounding corruption is extreme.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The correct sequence:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identify and fix the storage-layer problem first (replace disk, reconnect volume, fix RAID)&lt;/li&gt;
&lt;li&gt;Copy the EDB and log files to a healthy volume&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;eseutil /mh&lt;/code&gt; on the copied EDB to check database state&lt;/li&gt;
&lt;li&gt;Proceed with soft or hard recovery on the healthy copy&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the disk has physically failed and no backup exists, the EDB must be recovered using a forensic-level tool capable of reading partially damaged files — one that can parse an EDB even when standard ESE access methods fail.&lt;/p&gt;




&lt;h2&gt;
  
  
  Exchange Error 528: Missing Transaction Log File (JET_errMissingLogFile)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What It Means
&lt;/h3&gt;

&lt;p&gt;Error 528 means Exchange cannot find a required transaction log file needed to replay committed transactions and bring the database to a consistent state.&lt;/p&gt;

&lt;p&gt;Exchange uses a sequential log chain. Each log file (e.g., &lt;code&gt;E00.log&lt;/code&gt;, &lt;code&gt;E0000001.log&lt;/code&gt;, &lt;code&gt;E0000002.log&lt;/code&gt;) must be present and intact for the database to reach a clean shutdown state. If any log in the required sequence is missing, Exchange refuses to mount.&lt;/p&gt;

&lt;p&gt;This most commonly happens when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Circular logging was enabled&lt;/strong&gt; — Exchange overwrites old logs, destroying the replay chain&lt;/li&gt;
&lt;li&gt;Logs were manually deleted to free disk space&lt;/li&gt;
&lt;li&gt;Antivirus quarantined a log file (flagging it incorrectly)&lt;/li&gt;
&lt;li&gt;A log file was on a separate volume that failed or was wiped&lt;/li&gt;
&lt;li&gt;Backup software deleted logs after a failed backup job&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to Diagnose Error 528
&lt;/h3&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;&lt;span class="kd"&gt;eseutil&lt;/span&gt; &lt;span class="na"&gt;/mh &lt;/span&gt;&lt;span class="s2"&gt;"C:\...\DBName.edb"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look for the &lt;strong&gt;Log Required&lt;/strong&gt; range in the output (e.g., &lt;code&gt;Log Required: 1-5 (0x1-0x5)&lt;/code&gt;). Then check which log files actually exist in the log directory. The gap between what's required and what exists confirms missing logs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recovery Options for Error 528
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Recovery Path&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Logs missing but backup exists with matching log chain&lt;/td&gt;
&lt;td&gt;Restore from backup, replay logs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Circular logging was ON and no backup exists&lt;/td&gt;
&lt;td&gt;Cannot do soft recovery. Must use &lt;code&gt;eseutil /p&lt;/code&gt; or third-party tool — data loss is likely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Single log missing, rest intact&lt;/td&gt;
&lt;td&gt;Attempt hard recovery, then use a third-party tool to extract maximum mailbox content&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Circular logging + Error 528 = worst-case scenario.&lt;/strong&gt; When circular logging is enabled and a crash occurs, point-in-time recovery is impossible without a full backup. This is why Microsoft recommends disabling circular logging for all production databases.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Exchange Error 548: Log File Mismatch (JET_errBadLogSignature)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What It Means
&lt;/h3&gt;

&lt;p&gt;Error 548 indicates that a log file exists but its internal signature does not match the signature of the database it's supposed to belong to.&lt;/p&gt;

&lt;p&gt;Exchange maintains a signature in both the EDB header and each log file to ensure they belong to the same database instance. A signature mismatch occurs when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Log files from a different database or a previous database instance are in the log directory&lt;/li&gt;
&lt;li&gt;The database was restored from backup but old log files were not cleared&lt;/li&gt;
&lt;li&gt;A database was moved or renamed without clearing the log path&lt;/li&gt;
&lt;li&gt;An incomplete database copy was mounted alongside mismatched logs (common in DAG misconfigurations)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to Diagnose Error 548
&lt;/h3&gt;

&lt;p&gt;Run &lt;code&gt;eseutil /ml &amp;lt;logfile&amp;gt;&lt;/code&gt; on the first log in the sequence and compare its &lt;code&gt;lGeneration&lt;/code&gt; and signature field against the EDB header output from &lt;code&gt;eseutil /mh&lt;/code&gt;. If the signatures differ, the logs don't belong to this database.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recovery Options for Error 548
&lt;/h3&gt;

&lt;p&gt;This error is often more recoverable than -1018 or 528, because the database itself may be intact.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clear the log directory (move all logs to a backup folder — do not delete them yet)&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;eseutil /p&lt;/code&gt; on the EDB to perform hard repair from the database alone&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;eseutil /d&lt;/code&gt; to defragment and rebuild the database structure&lt;/li&gt;
&lt;li&gt;If this fails, use a third-party EDB repair tool to read the EDB directly without relying on the log chain&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Diagnostic Flowchart: Which Error Do You Have?
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Exchange database won't mount
         |
         v
Run: eseutil /mh database.edb
         |
    Dirty Shutdown?
   /              \
 YES               NO
  |                |
  |         Different issue (quota,
  |         permissions, service)
  |
  v
Check Windows Event Viewer
for specific JET error code
    |
    |---------|---------|----------|
  -1018    -1022      528        548
    |        |         |          |
  Page    Disk IO   Missing    Log file
 corrupt   error    log file   mismatch
    |        |         |          |
 Fix:    Fix        Restore   Clear log
 eseutil  storage   from      directory,
 /p or    layer     backup    then hard
 3rd      first,    or hard   repair or
 party    then      repair    3rd party
 tool     copy EDB  or 3rd    tool
          to new    party
          volume,   tool
          then
          repair
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  When eseutil Isn't Enough: What Native Tools Can't Do
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;eseutil&lt;/code&gt; is Microsoft's built-in database repair utility and the default answer across most IT forums. However, it has documented limitations that admins discover — usually at the worst possible time:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;eseutil /p&lt;/code&gt; causes data loss by design.&lt;/strong&gt; It repairs the database structure by purging corrupt pages. Any mailbox items stored on those pages are permanently deleted. Microsoft explicitly advises against using this as a primary recovery strategy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;eseutil&lt;/code&gt; cannot recover from physical disk failure.&lt;/strong&gt; If the EDB is stored on a dead disk, &lt;code&gt;eseutil&lt;/code&gt; cannot access it at all.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;eseutil&lt;/code&gt; requires the log chain.&lt;/strong&gt; Without a clean log sequence, soft recovery (&lt;code&gt;eseutil /r&lt;/code&gt;) will not work, leaving only the destructive &lt;code&gt;/p&lt;/code&gt; option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;eseutil&lt;/code&gt; does not enable granular recovery.&lt;/strong&gt; You cannot use it to extract specific mailboxes or items. It's all-or-nothing at the database level.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;After &lt;code&gt;eseutil /p&lt;/code&gt;, the database is not trusted.&lt;/strong&gt; Microsoft's own guidance states the resulting database should be treated as potentially inconsistent and should not be used as a long-term production store.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Prevention: How to Stop This from Happening Again
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;What It Prevents&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Disable circular logging on all production databases&lt;/td&gt;
&lt;td&gt;Error 528 scenarios after crash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use UPS (Uninterruptible Power Supply) for Exchange servers&lt;/td&gt;
&lt;td&gt;Dirty shutdown from power failure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Monitor disk health proactively (SMART, disk I/O alerts)&lt;/td&gt;
&lt;td&gt;JET -1022 from disk degradation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verify backups weekly with test restores&lt;/td&gt;
&lt;td&gt;Ensures recovery path exists before you need it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Separate EDB and log files onto different volumes&lt;/td&gt;
&lt;td&gt;Prevents a single disk failure from wiping both&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Configure DAG (Database Availability Groups) for HA&lt;/td&gt;
&lt;td&gt;Eliminates single point of failure at DB level&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Summary: JET Errors at a Glance
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Error Code&lt;/th&gt;
&lt;th&gt;Cause&lt;/th&gt;
&lt;th&gt;Native Fix&lt;/th&gt;
&lt;th&gt;Data Loss Risk&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;JET_errReadVerifyFailure (-1018)&lt;/td&gt;
&lt;td&gt;Corrupt EDB page&lt;/td&gt;
&lt;td&gt;&lt;code&gt;eseutil /p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JET_errDiskIO (-1022)&lt;/td&gt;
&lt;td&gt;Disk/storage failure&lt;/td&gt;
&lt;td&gt;Fix storage, then repair&lt;/td&gt;
&lt;td&gt;High if disk is dead&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JET_errMissingLogFile (528)&lt;/td&gt;
&lt;td&gt;Missing transaction log&lt;/td&gt;
&lt;td&gt;Restore backup&lt;/td&gt;
&lt;td&gt;High if circular logging was ON&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JET_errBadLogSignature (548)&lt;/td&gt;
&lt;td&gt;Log/DB signature mismatch&lt;/td&gt;
&lt;td&gt;Clear logs, hard repair&lt;/td&gt;
&lt;td&gt;Low to Medium&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;Exchange database failures are not rare events — they are an expected operational risk in any on-premises mail infrastructure. The admins who recover fastest are not the ones who know the most &lt;code&gt;eseutil&lt;/code&gt; flags — they are the ones who &lt;strong&gt;diagnose the specific error first&lt;/strong&gt; and match it to the right recovery method.&lt;/p&gt;

&lt;p&gt;Reaching for &lt;code&gt;eseutil /p&lt;/code&gt; before understanding the error code is the most expensive mistake in Exchange recovery. It trades a repairable problem for a permanent one.&lt;/p&gt;

&lt;p&gt;The flowchart above gives you the diagnostic structure. The tool you use at the end of it determines whether your users get their mailboxes back intact.&lt;/p&gt;

</description>
      <category>database</category>
      <category>devops</category>
      <category>security</category>
      <category>sql</category>
    </item>
  </channel>
</rss>
