1. An Exchange 2003 server (Enterprise ed. with SP1) running on Windows server 2003 std (no SP applied) had a problem with one of the 2 storage groups. The problematic storage group dismounted without warning and could no longer be mounted. Because the databases are huge, we decided to proceed both ways: 1) do restore from an online backup and 2) try to salvage with eseutil just in case the backup is no good.
2. Because there was another storage group working just fine on the production server, we deciede to copy the very huge edb, stm, and log files over to another place for recover, so as not the interfere with the production server. At the same time, the latest backup tape was inserted for restore operation.
3. The server on which we were doing eseutil is not an Exchange server (but also a Windows server 2003 std). We followed MS KB Q244525. But even so, no matter how we tweak the syntax, we keep receiving:
Operation terminated with error -1003
(JET_errInvalidParameter; Invalid API parameter) after 0.47 seconds
This happens whether we run eseutil /r or eseutil /p. The funny thing is, I believe it actually had started the recovery/repair, in that it could identify the edb, stm, log files. But it always terminated with the stated error.
4. We were not successful with the repair, and only stopped after restore from backup was successful (phew!).
5. We searched the web to see what we did wrong. We had done this before on an Exchange server, not on a non-Exchange server. I knew for certain it CAN be done.
a. For disk space sake we had to copy it to a NAS, then map network drive from the "repair server" (non-Exchange) to it. Is that an issue?
b. The checkpoint file had gone missing. But I suppose it would not matter if we were doing hard repair?
c. The file path for log and database were different than the original (production). Doesn't matter does it?
d. Our syntax: eseutil /p e:\test\db\database1.edb /se:\test\db\database1.stm. Appreciate if anyone can correct us.
Many thanks ...