none
База в статусе "Dirty Shutdown" - eseutil выдает ошибку: 1003 - JET_errInvalidParameter, Invalid API parameter RRS feed

  • Общие обсуждения

  • Доброго времени суток! Очень прошу помочь с моей проблемой - вырубили электропитание, в итоге база Exchange 2010 перешла в статус "Dirty shutdown". Пробовал вот так:

    [PS] D:\>eseutil.exe /r "D:\Mail_database\Mailbox Database 0679961528.edb"

    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
    Version 14.02
    Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating RECOVERY mode...
        Logfile base name: D:\Mail_database\Mailbox Database 0679961528.edb
                Log files: <current directory>
             System files: <current directory>

    Operation terminated with error -1003 (JET_errInvalidParameter, Invalid API parameter) after 0.0 seconds.

    Тогда попробовал так:

    [PS] D:\>eseutil /R E00 /l "D:\Mail_database" /d "D:\Mail_database\Mailbox Database 0679961528.edb"

    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
    Version 14.02
    Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating RECOVERY mode...
        Logfile base name: E00
                Log files: D:\Mail_database
             System files: <current directory>
       Database Directory: D:\Mail_database\Mailbox Database 0679961528.edb

    Performing soft recovery...
                          Restore Status (% complete)

              0    10   20   30   40   50   60   70   80   90  100
              |----|----|----|----|----|----|----|----|----|----|
              X



    Operation terminated with error -515 (JET_errInvalidLogSequence, Timestamp in next log does not match expected) after 28
    .143 seconds.

    База довольно увесистая, порядка 300 Гб. Бекапа, к сожалению, нет. Нужно как можно быстрее все поднять на ноги, что посоветуете предпринять? Заранее огромное спасибо.


    21 марта 2013 г. 14:57

Все ответы

  • Покажите вывод команд

    eseutil /ml "D:\Mail_database\E00"

    и

    eseutil /mh "D:\Mail_database\Mailbox Database 0679961528.edb"

    21 марта 2013 г. 15:23
    Отвечающий
  • eseutil /ml "D:\Mail_database\E00" - No damaged log files were found

    D:\Mail_database>eseutil /mh "D:\Mail_database\Mailbox Database 0679961528.edb"

    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
    Version 14.02
    Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating FILE DUMP mode...
             Database: D:\Mail_database\Mailbox Database 0679961528.edb


    DATABASE HEADER:
    Checksum Information:
    Expected Checksum: 0x05bf59fa
      Actual Checksum: 0x05bf59fa

    Fields:
            File Type: Database
             Checksum: 0x5bf59fa
       Format ulMagic: 0x89abcdef
       Engine ulMagic: 0x89abcdef
     Format ulVersion: 0x620,17
     Engine ulVersion: 0x620,17
    Created ulVersion: 0x620,17
         DB Signature: Create time:03/21/2013 20:10:11 Rand:9295553 Computer:
             cbDbPage: 32768
               dbtime: 70211104 (0x42f5620)
                State: Dirty Shutdown
         Log Required: 0-0 (0x0-0x0)
        Log Committed: 0-0 (0x0-0x0)
       Log Recovering: 0 (0x0)
      GenMax Creation: 00/00/1900 00:00:00
             Shadowed: Yes
           Last Objid: 16785
         Scrub Dbtime: 0 (0x0)
           Scrub Date: 00/00/1900 00:00:00
         Repair Count: 6
          Repair Date: 03/21/2013 20:10:11
     Old Repair Count: 0
      Last Consistent: (0x0,0,0)  00/00/1900 00:00:00
          Last Attach: (0x0,0,0)  03/21/2013 20:10:11
          Last Detach: (0x0,0,0)  00/00/1900 00:00:00
                 Dbid: 1
        Log Signature: Create time:00/00/1900 00:00:00 Rand:0 Computer:
           OS Version: (6.1.7601 SP 1 NLS 60101.60101)

    Previous Full Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00

    Previous Incremental Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00

    Previous Copy Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00

    Previous Differential Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00

    Current Full Backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00

    Current Shadow copy backup:
            Log Gen: 0-0 (0x0-0x0)
               Mark: (0x0,0,0)
               Mark: 00/00/1900 00:00:00

         cpgUpgrade55Format: 0
        cpgUpgradeFreePages: 0
    cpgUpgradeSpaceMapPages: 0

           ECC Fix Success Count: none
       Old ECC Fix Success Count: none
             ECC Fix Error Count: none
         Old ECC Fix Error Count: none
        Bad Checksum Error Count: found (3)
    Last Bad Checksum Error Date: 03/21/2013 17:15:51
    Old bad Checksum Error Count: found (3)

      Last checksum finish Date: 00/00/1900 00:00:00
    Current checksum start Date: 00/00/1900 00:00:00
          Current checksum page: 0


    Operation completed successfully in 0.47 seconds.

    И еще - попробовал eseutil /p - выбивает недопустимую операцию eseutil при работе с MSysLocales.

    ------------

    При попытке смонтировать базу через EMS выдается:

    --------------------------------------------------------
    Microsoft Exchange Error
    --------------------------------------------------------
    Failed to mount database 'Mailbox Database 0679961528'.

    Mailbox Database 0679961528
    Failed
    Error:
    Couldn't mount the database that you specified. Specified database: Mailbox Database 0679961528; Error code: An Active Manager operation failed. Error The database action failed. Error: Operation failed with message: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-550)
    . [Database: Mailbox Database 0679961528, Server: MAIL.org.ru].

    An Active Manager operation failed. Error The database action failed. Error: Operation failed with message: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-550)
    . [Database: Mailbox Database 0679961528, Server: MAIL.org.ru]

    An Active Manager operation failed. Error Operation failed with message: MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-550)
    . [Server: mail.org.ru]

    MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-550)





    --------------------------------------------------------
    OK
    --------------------------------------------------------

    21 марта 2013 г. 16:17
  • И еще - попробовал eseutil /p - выбивает недопустимую операцию eseutil при работе с MSysLocales.

    Полный вывод команды покажите. /p используется в самом наираспоследнем случае - если она не поможет - ничто не поможет.


    21 марта 2013 г. 16:47
    Отвечающий
  • Странно - неужели одного единственного некорректного завершения работы сервера достаточно, чтобы полностью базу угробить? И потом - проблема именно с самой программой eseutil - она рушится при работе с ключом /p. Сейчас сброшу вывод, пока еще процесс идет, рушится только на самом финальном этапе. Может быть, есть возможность скачать версию eseutil из другого источника?
    21 марта 2013 г. 16:56
  • вот скриншот:

    21 марта 2013 г. 17:24
  • Если что - сохранил отдельно весь каталог с базой - до вмешательства eseutil. То есть могу подменить, если найдется какое-то решение...
    21 марта 2013 г. 18:04
  • Вот еще что провел (вроде бы нет ошибок):

    21 марта 2013 г. 18:15
  • Странно - неужели одного единственного некорректного завершения работы сервера достаточно, чтобы полностью базу угробить? И потом - проблема именно с самой программой eseutil - она рушится при работе с ключом /p. Сейчас сброшу вывод, пока еще процесс идет, рушится только на самом финальном этапе. Может быть, есть возможность скачать версию eseutil из другого источника?

    У Вас там не "одно завершение" - счетчик ремонта базы (с помощью eseutil /p) у Вас 6.

    Плюс, несколько сбоев контрольных сумм страниц базы уже сейчас. Скорее всего, у Вас сбоит оборудование (память, контроллер диска и т.п.). Кстати, непрохождение eseutil /p - серьезное основание подозревать именно аппаратные сбои.


    Слава России!

    21 марта 2013 г. 18:45
  • Вообще-то то это виртуальная машина, создана 2 недели назад всего лишь, на хостовой машине аппаратный RAID (зеркало), никаких сбоев нет. Кроме Exchange, там крутится еще 5 виртуалок. Поэтому вряд ли причиной является аппаратная проблема. И что все-таки делать?
    21 марта 2013 г. 21:08
  • Запустил soft recovery:

    21 марта 2013 г. 21:22
  • Давайте я вот что сделаю - присоединю базу по состоянию сразу после аварийного завершения работы сервера - до первого вмешательства - скажите, пожалуйста, что и в какой последовательности следует выполнить? Очень нужно восстановить базу.
    21 марта 2013 г. 22:04
  • Проверил раздел, на котором база лежит при помощи chkdsk, ошибки исправлены. Применил soft recovery еще раз:

    И все равно после этого база в состоянии Dirty Shutdown!!!!! Что еще нужно сделать???

    22 марта 2013 г. 9:09
  • Посмотрите состояние файла базы (eseutil /mh ) сразу после выполнения soft recovery.


    Слава России!

    22 марта 2013 г. 14:50
  • Я немного сменил тактику - смонтировал диск с копией каталога Mail_database (состояние сразу после падения, без единого вмешательства) - выполнил последовательно:

    eseutil /mh "D:\mail_database"

    DB Signature: Create time:12/14/2012 13:33:04 Rand:2296781 Computer:
             cbDbPage: 32768
               dbtime: 54243996 (0x33bb29c)
                State: Dirty Shutdown
         Log Required: 151285-151305 (0x24ef5-0x24f09)

    Видно, что логов недостает. Иду дальше:

    eseutil /ml D:\Mail_database\E00

    ...

          Log file: D:\Mail_database\E0000024EF8.log - OK
          Log file: D:\Mail_database\E0000024EF9.log - OK
          Log file: D:\Mail_database\E0000024EFA.log - OK
          Log file: D:\Mail_database\E00.log - OK

    Operation terminated with error -4001 (JET_errFileIOBeyondEOF, a read was issued to a location beyond EOF (writes will expand the file)) after 1833.714 seconds.

    Попытался провести "мягкое" восстановление:

    eseutil.exe /r E00 /l "D:\Mail_database" /d "D:\Mail_database"

    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
    Version 14.02
    Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating RECOVERY mode...
        Logfile base name: E00
                Log files: D:\Mail_database
             System files: <current directory>
       Database Directory: D:\Mail_database

    Performing soft recovery...

    Operation completed successfully in 0.297 seconds.

    Вроде бы порядок, но нет. Слишком быстро прошла операция и eseutil /mh снова пишет, что 'Dirty Shutdown". Удалил файл .chk, выполняю снова:

    eseutil.exe /r E00 /l "D:\Mail_database" /d "D:\Mail_database"

    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
    Version 14.02
    Copyright (C) Microsoft Corporation. All Rights Reserved.

    Initiating RECOVERY mode...
        Logfile base name: E00
                Log files: D:\Mail_database
             System files: <current directory>
       Database Directory: D:\Mail_database

    Performing soft recovery...
                          Restore Status (% complete)

              0    10   20   30   40   50   60   70   80   90  100
              |----|----|----|----|----|----|----|----|----|----|
              .........................................X



    Operation terminated with error -1018 (JET_errReadVerifyFailure, Checksum error on a database page) after 1381.498 secon
    ds.

    Вот такая проблема. eseutil пока не проводил, что можно предпринять?

    22 марта 2013 г. 16:58
  • Скажите, а может быть поступить так - собрать с нуля на нормальном сервере еще один Exchange, дать ему имя mail2.org.ru, ввести в тот же домен, а потом подменить его базу вот этой, разумеется, после приведения ее к состоянию "Clean Shutdown"? Как я понимаю, достаточно будет просто DNS переписать на mail2.org.ru вместо mail.org.ru?
    23 марта 2013 г. 5:41
  • Достаточно просто привести базу к состоянию Clean Shutdown и подсунуть ее существующему серверу.

    Только делать это придется с помощью eseutil /p

    PS Проверьте, не включено ли у вас кэширование по записи на RAID-контроллере без батарейки. Это может быть причиной сбоев, подобных вашему, при отключении питания.


    Слава России!

    23 марта 2013 г. 10:51
  • Вы знаете, собрал виртуальную машину - точно такой же Exchange-сервер, скопировал базу туда и попробовал eseutil /p - почти получилось, на 74% при восстановлении MSysLocales снова сбой самой утилиты eseutil.exe. После чего база портится окончательно. Читал форумы - кто-то жаловался, что проблема проявляется после установки Exchange SP1, пробую установить Exchange 2010 (без SP) и проверить там. Все это очень странно, неужели проблема в утилите? Или, может быть, недостаточно ОЗУ установлено для такого восстановления? Или места на диске? В чем может быть проблема?
    24 марта 2013 г. 14:38
  • Вот только что на другом Exchange-сервере (физически другая машина) попытался выполнить eseutil /p:

    В прошлый раз Deleting unicode fixup table прошло успешно, выбросило на deleting MSysLocales, сейчас вот так... Что происходит вообще???

    24 марта 2013 г. 16:42
  • Хорошо, а можно создать пустой файл базы и применить к нему eseutil /r E00? То есть собрать как бы из логов? Логи вроде бы в порядке все. Это возможно? Ну больше никаких вариантов уже не осталось.
    24 марта 2013 г. 16:45