Exchange Server database errors can be difficult for Exchange administrators to overcome. File level damage can lead to numerous error messages that prevent you from accessing the database – potentially resulting in critical data loss. In such case Hopefully, in this brief article, we will give you some tips on how to address errors 1018, 1019 and 1022.

When file level damage occurs in the Microsoft Exchange database, it manifests itself in errors such as:

  • -1018 JET_errReadVerifyFailure
  • -1019 JET_errPageNotInitialized
  • -1022 JET_errDiskIO

In the Microsoft Exchange Server Database, three levels of damage can occur:

  • Page level damage (file system)
  • Database level damage (JET database engine)
  • Application level damage (Exchange information store)

Page level damage is physical damage that occurs within the Operating System, drivers, or hardware. Database and Application level damage are logical damage occurring due to problems in B-tree structure, table or index of EDB files.  Microsoft Exchange offers three different in-built utilities to repair in case of database corruption. You can use Esefile.exe tool to detect and repair page and database level damage. Using the Isinteg.exe tool will solve application level issues efficiently.

Fix Exchange Server Error -1018 JET_errReadVerifyFailure

What is Error -1018?

Error -1018 JET_errReadVerifyFailure occurs due to file system level damage to the Exchange database.

How does data on the disk become damaged?

  • Data is stored in the incorrect place.
  • Incorrect data is written on the storing media.
  • Written data has been changed or damaged after being stored.

Causes of error -1018 JET_errReadVerifyFailure

Some common causes of -1018 error are:

  1. Previously stored checksum value and the recalculated checksum value doesn’t match.
  2. The actual page number and the stored page number have different values.
  3. Exchange Server is self-creating a page with wrong checksum.
  4. NTFS file system is showing error.

How to fix Exchange error 1018?

  1. Restore database from online backupDuring backup creation, ESE database recalculates the checksum and if -1018 error occurs, the online backup process gets terminated. To restore database and log files from an online backup, you can use any reliable media such as NTBackup or Windows Server backup.
  2. Fix using ESEUTILThis will directly remove the damaged page. As this page comprises of data, even if the leaf is corrupt, data loss will occur. With internal page damage, the database loses its structure which ultimately results in reconstruction of the table.

Syntax used to repair Exchange EDB file using Eseutil/p switch is:

C:\program files\exchsrvr\bin >Eseutil / p “c:\program files\exchsrvr\mdbdata\priv1.edb”

This will remove the corrupted files leaving the good data behind. To mount the server to the database directly you will have to defragment it and correct the logical numbering of pages.

Offline defragmentation of database

After the elimination of corrupt pages from the Database, white space will be left. You can remove this white space with defragmentation of the database. The syntax for this is below:

C:\program files\exchsrvr\bin >Eseutil / d “c:\program files\exchsrvr\mdbdata\priv1.edb”

Correct the B-Tree structure

During the repair and defragmentation process, the index of the database gets disordered. The Isinteg utility corrects both logical and physical numbering of the database, making it mountable on the server.

The syntax for this is below:

C:\program files\exchsrvr\bin >isinteg –s servername –fix –test alltests

Fix Exchange Server Error -1019 JET_errPageNotInitialized

The Jet Engine Error -1019 occurs when an expected page that should be in use is blank or uninitialized. This page will have checksum and page number 0x00000000. This error also arises if there exists an invalid logic link between the pages. The process of resolving this error is similar to error -1018, but it cannot be diagnosed by online backup.

Fix Exchange Server -1022 JET_errDiskIO

The error -1022 JET_errDiskIO occurs due to disk input/output (I/O) failure. Whenever the Exchange requests a database page, and the operating system cannot gain access it, you will see the -1022 error.

Another reason for this error is damage to the EDB files. In this case, an incomplete transaction log set is replayed in the database. In this instance, the requested pages are more than the number of already existing pages in the database. This can result in sudden system crashes and the system may hang while starting and accessing data.

Repairing the -1022 error is extremely difficult and it won’t always make sense as the damage to the database is severe. You have to restore the most recent backup to recover the data.

Conclusion

The solutions mentioned in this article are effective but require a lot of time and detailed knowledge of commands and syntaxes like Eseutil. If you do not have the time or expertise you can use third party Exchange Recovery solutions to recover all the corrupt or inaccessible data. This solution will successfully recover your data even in case of severe Exchange corruption. It provides a a basic approach towards recovering private and public folder data from offline/corrupt EDB file.