Improve company productivity with a Business Account.Sign Up

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 9696
  • Last Modified:

ESEUTIL Error -1022 Jet error IO error

I have Exchange Standard 2003 with service pack 2 running on Windows Server 2003 standard edition, fully updated.  I use Symantec Backup Exec 12 for backup and restore.  I run a nightly backup of the Exchange stores, mail and public.  These are full backups. I want to run an offline defrag of my mail store to reclaim 11 gigs worth of space.  I am want to do a practice run to see how long it would take and what the results would be.

I do a VSS restore of my nightly backup to a temporary directory on my exchange server.  I try to run the ESEUTIL /R command but I get an error saying the DB is in a dirty shutdown state.  So I try to run the ESEUTIL /r E00 /D "path to my DB" and get the error:
Operation terminated with error -1022 (JET_errDiskIO, Disk IO error) after 1.0 seconds.

The restored DB is on a local SCSI drive on the exchange server.  When I run the restore I have BackUP exec commit the transaction logs to the DB but not mount it.  

I have also tried this with anti-virus off.  

2 Solutions
After restoring the VSS backup you need to ran eseutil /r e00 /d "path to db" /l "path to restore log" /s "path to restored chk file".
Once you are done with this run eseutil /mh "database absolute path with database name" to check if it is in a clean shutdown state.
eseutil /d could only be run on the clean shutdown database. This is the reason you are getting an error message.

Tread carefully as the tools you are using are designed live action and not to test databases.

You would want to use hard recovery mode: eseutil /C

Repairing databases involves the following three stages, in this order:
Eseutil is run in /P mode to perform a database page-level and table-level repair
Eseutil is run in /D mode to fully rebuild indexes and defragment the database
ISInteg is then run to repair the database at the application level

Good luck
kristopherbunchAuthor Commented:
I tried running what you said but I get an error:

D:\Program Files\Exchsrvr\TestOfflineDefrag>eseutil /R E00 /D"D:\Program Files\E
xchsrvr\TestOfflineDefrag\" /S"d:\Program Files\Exchsrvr\TestOfflineDefrag\"

Usage Error: Invalid argument 'Files\Exchsrvr\TestOfflineDefrag"'. Options must
be preceded by '-' or '/'.

Principalit I will try yours after I try X-sam's.
Simplify Active Directory Administration

Administration of Active Directory does not have to be hard.  Too often what should be a simple task is made more difficult than it needs to be.The solution?  Hyena from SystemTools Software.  With ease-of-use as well as powerful importing and bulk updating capabilities.

eseutil /R E00 /D "D:\Program Files\Exchsrvr\TestOfflineDefrag\" /S "d:\Program Files\Exchsrvr\TestOfflineDefrag\" /l "d:\Program Files\Exchsrvr\TestOfflineDefrag\"

Run this and you should not be getting any error now. You were missing space after /s /d /l.

kristopherbunchAuthor Commented:
Ok I just noticed this.  This is the origional command I was trying:

D:\Program Files\Exchsrvr\TestOfflineDefrag>eseutil /R E00 /D"D:\Program Files\E

Microsoft(R) Exchange Server Database Utilities
Version 6.5
Copyright (C) Microsoft Corporation. All Rights Reserved.

Initiating RECOVERY mode...
    Logfile base name: E00
            Log files: <current directory>
         System files: <current directory>
   Database Directory: D:\Program Files\Exchsrvr\TestOfflineDefrag"

Performing soft recovery...

Operation terminated with error -1022 (JET_errDiskIO, Disk IO error) after 1.0 s

The .chk is in that directory.  I am running Eseutil from the directory with the logs, .chk and log files.  
kristopherbunchAuthor Commented:
I ran the one you provided and I still got that error about invalid argument.  
Please try this:

1. Create a folder named ESEUTIL-TESTS
2. Copy the database files, and all logs files into ESEUTIL-TESTS
3. Copy the ESEutil files into the ESEUTIL-TESTS folder:  ( Eseutil.exe, Ese.dll, Jcb.dll, Exosal.dll, and Exchmem.dll)
4. Once you have the database files, logs, and the eseutil files in the same directory (ESEUTIL-TESTS), open a command prompt and switch to the "ESEUTIL-TESTS" folder.
5. Run:   "eseutil /r /E00"   (and nothing else)

See if it works with everything in the same directory...
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now