Subscribe to Windows IT Pro

 

Get Newsletters

  • Get the Latest News
  • Product Updates
  • Helpful Tricks
  • Productivity Tips

Subscribe Now!

May 17, 2002 12:00 AM

Understanding -1018, -1019, and -1022 Database Errors

Windows IT Pro
InstantDoc ID #25236
Rating: (0)
Learn about these common errors and how to deal with them

Exchange Server database errors are some of the most troublesome events an Exchange administrator can face. File-level damage to your Exchange database can manifest itself in errors such as the -1018, -1019, and -1022 Joint Engine Technology (JET) database errors.

First (and most common) is the infamous -1018 error. This error most often rears its ugly head during a full backup of Exchange databases. The error's Detail field shows that the -1018 is a Read Verify Error. Simply put, the database engine tried—and failed—to verify information about a particular page in the database. (When the Extensible Storage Engine—ESE—reads a page from the database, it compares the page number and the page checksum—which are located in each page's 40-byte header—and verifies that the page requested was the page returned and that the page's checksum is valid. To calculate the checksum, the ESE uses a seed value, then XORs that value with the data in the page.) The -1018 error can have many causes, which I've discussed in past commentaries. More important than the cause, however, is how you decide to recover from it.

You really have only three options. The first option is to restore the database from backup. This option is the most drastic but might be the only solution if other methods fail. The second option is to use Eseutil (which comes with Exchange 2000 Server and Exchange Server 5.5) to attempt to repair the problem database. Be aware, however, that this method is likely to cause some data loss. (This method essentially eliminates the bad pages in the database; the severity of data loss depends on what information those pages stored.) The third option is data relocation. I prefer this option, which involves relocating mailboxes from the damaged database to a new database on the server or on another server. This option preserves data and doesn’t require a complete recovery operation. To determine which mailbox (if any) the page is part of, see the Microsoft article "XADM: How to Determine Which Mailbox Owns a Particular Page in a Database". You might also find the Esefile utility (which also comes with Exchange) useful. This utility provides a complete offline scan of every page in the database. This scan can detect bad pages as well as other transient problems that a -1018 error might indicate.

The -1019 and -1022 errors are less common than but as severe as the -1018 error. A -1019 error is similar to a -1018 error but indicates that the accessed page has returned an invalid page number (usually all zeros) rather than an invalid checksum. In other words, the ESE expected the page to be in use but found that the page wasn't initialized or was empty. The -1019 error is most often the result of file-system corruption that has caused regions of the disk to be erroneously mapped into the database file.

The -1022 error is the most indicative of major hardware problems, particularly disk subsystem problems. If the database engine requests a page from disk but instead receives an error from the I/O subsystem, a -1022 error results. This error doesn’t necessarily indicate database corruption but does tell you that the ESE couldn't access the Exchange database. To find the source of this error, start by looking in the System event logs and running disk diagnostics. Replace any defective hardware that you find.

The -1018, -1019, and -1022 errors are the most common errors that you'll encounter. As such, you should be familiar with each error and know how to recover Exchange databases effectively when these errors surface. For more information about the errors and how Microsoft recommends you recover from them, see the Microsoft article "XADM: Understanding and Analyzing -1018, -1019, and -1022 Exchange Database Errors".

Related Content:

ARTICLE TOOLS

Comments
  • Error Data base
    9 years ago
    Oct 31, 2003

    I have this error message sometimes 1 to 5 times every day :
    "Error Database (-2147467259) [DBNETLIB][ConnectionOpen(Connect().,)"

    Can you help me

    Thanks

You must log on before posting a comment.

Are you a new visitor? Register Here

advertisement

advertisement

White Papers

Get your Windows 7 deployment off to the right start by implementing PC lockdown. A locked-down environment is easier and cheaper to support since users are less likely to make unnecessary changes to the core system configuration - read more here!

Essential Guides

Is your iSCSI "lossy"? The reality is that most off-the-shelf Ethernet hardware deployed for iSCSI can lose packets, resulting in slow performance or application downtime. Learn how to assess your current iSCSI infrastructure and engineer an advanced iSCSI SAN infrastructure.

Web Seminars

What's the best way to keep your network safe from malware? In this web seminar, security expert Greg Shields suggests an alternative method to the traditional blacklisting approach that is common with anti-virus and anti-malware solutions.

eLearning Series

We bring the experts direct to you to share their real-world perspective and expertise. During each event, three sessions stream in real time, so you can learn, ask questions, and get solutions.
Upcoming event: Getting the Most with Exchange 2010 with Paul Robichaux

Subscribe to Windows IT Pro!

Windows is a trademark of the Microsoft group of companies. Windows IT Pro is used by Penton Media Inc. under license from owner.