Article ID: 151789 - Last Review: October 28, 2006 - Revision: 4.4 Error -1018 (JET_errReadVerifyFailure) in Exchange Server 4.0, in Exchange Server 5.0, and in Exchange Server 5.5This article was previously published under Q151789 On This PageSYMPTOMS Symptoms include any JET database operation that results in
an -1018 (JET_errReadVerifyFailure) and/or any Windows NT Event Viewer
application log error reported that included the error code -1018 in its
description, such as the following: Event ID: 23 Source: EDB Type: Error Category: Database Page Cache Description: MSExchangeIS ((455)) Direct read found corrupted page error -1018 ((1:251563) (0-2295758), 251563 379225672 381322824). Please restore the database from a previous backup. CAUSE When you perform a transaction with the Jet database, the
information store or the directory store writes the transaction to a
transaction log file (Edb*.log in Mdbdata or Dsadata). The transaction is then
committed to the Jet database. During this process, the Jet engine calculates
the page's checksum value to be written, records it in the page header, and
then requests that the file system writes the 4-KB page of data to the database
on disk. In brief, the file system takes this call and uses Windows NT system
services to forward this request to the corresponding hardware device driver to
actually perform the write. The hardware device driver returns this information
to the file system, which then returns it to the Jet engine. If the call is
successful, Jet continues. Faulty hardware or hardware device drivers may return SUCCESS to calls made to them before they actually perform the physical operation. When the actual physical operation takes place, however, an error occurs and the data is not written successfully as expected. In certain database operations such as but not limited to Online Backup, the backup routine makes a call to the operating system to read a 4-KB page of data from the database on disk and write it to tape. Before committing the data returned from the operating system call to the tape, the online backup process compares the checksum value in the page header (recorded when this page was written to disk) to that being returned from the READ call. If the checksum values do not match, the JET database engine detects this and returns -1018 (JET_errReadVerifyFailure). RESOLUTION To resolve the problem, use one of the following methods. Restore from a BackupWhen you encounter the error, the recommended and most reliable way to recover the database is to restore from the last known good backup.NOTES: Even after you restore from a known good backup, however, the -1018 errors may appear again unless the root causes of the physical data write problems are resolved. The Windows NT system log should be reviewed for errors reported by the hard disks and hard disk controllers as well at the NT Fault Tolerant disk subsystem (FTDISK). In particular, hardware-related errors such as SCSI time-out errors, memory errors, or drive corruption errors may appear. These errors should be dealt with and resolved before the database is restored to this server. Even if no hardware-related errors appear in the Windows NT system log, a hardware problem may exist on your computer. Microsoft recommendeds that you contact your hardware vendor for further updates regarding your hardware. Use Edbutil.exe or Eseutil.exeAn alternate way to repair the bad page of data is to use Edbutil.exe for Exchange Server 4.0 and 5.0, or Eseutil.exe for Exchange Server 5.5.IMPORTANT: Make a full offline file backup of the database and log files before running this process. This includes file-level backups of the Exchsrvr\Dsadata and Exchsrvr\Mdbdata folders. This ensures that there is a way to go back if Edbutil/eseutil fails. Edbutil.exe (and Eseutil.exe) is a low-level Jet database utility that defragments and checks the consistency of the database. There is also a repair option (Edbutil /d /r <dbname>, Eseutil /p <dbname>) that attempts to repair bad pages and remove them if the repair is unsuccessful. If a page is removed using the repair option, data loss will occur. A page in a database can contain messages, folders, tables, master indexes, and so forth. There is no way to tell what Edbutil or Eseutil has removed because Jet sees it as raw data. After repair has finished on the Jet database, run an offline defragmentation (Edbutil /D <dbname> or Eseutil /p <dbname>) to repair the space trees. Immediately after defragmentation, run Isinteg.exe in fix mode on the same database that Edbutil or Eseutil was run on. Isinteg cleans up any inconsistencies between the pointers from the information store to the actual data in the Jet database. If Isinteg is not run immediately following repair, corruption may occur in user mailboxes. Users will have messages that cannot be opened, incorrect read/unread counts, and so forth. After running Edbutil or Eseutil, make a FULL backup of the database that was repaired. Refer to the Microsoft Exchange Server Administrator's Guide for more details on the use of Edbutil.exe and Isinteg.exe. Troubleshoot the ProblemIf you are unable to resolve the problem by restoring from a backup or using Edbutil.exe or Eseutil.exe, use the following steps to troubleshoot the problem. After performing each step, check to see if the problem is resolved.
APPLIES TO
| Article Translations
|

Back to the top
