Как восстановить разрушенные данные БД ADS
Материал из Фабиус wiki
Версия от 11:19, 1 октября 2014; Admin (обсуждение | вклад)
Руководство по использованию утилиты AdtFix для восстановления поврежденных adt-таблиц.
Когда нужен ремонт?
Ремонт таблицы adt-типа следует произвести, если при работе с ней вы получаете сообщения Ads со следующими кодами ошибок:
- 7016 - Таблица разрушена
- 7072 - Разрушен мемо-файл, связанный с этой таблицей
- 7116 - Неопознана версия adt-таблицы
- 7123 - Неопознан тип поля
- 7124 - Неверное число записей
Эти ошибки возникают, когда вы пытаетесь работать с данными :
- восстановленными из архива, который был создан без использования клиентской части Ads - например, вы свернули базу в архив с помощью Winrar, или сняли ее копию утилитой xcopy в то время, как с ней работали пользователи;
- после резкой перезагрузки сервера - сбой питания, нажатие кнопки Reset и т.п.
Для пользователей испорченность таблицы проявляется в том, что они не могут добавить новую запись - F6 не работает там, где всегда работал.
В таких случаях следует проверить подозрительные файлы, как это сказано ниже.
Инструмент
Для полного ремонта нужны следующие утилиты:
- adtfix.exe - ремонтирует таблицы
- freeadt.exe - отвязывает таблицы от Словаря базы данных,
- arc32.exe - многофункциональная утилита "Advantage Database Architect".
Утилиты adtfix.exe и freeadt.exe размещены на нашем FTP-сервере
Ремонт
- Создайте временную директорию типа \temp\fix.
- Копируйте в нее adtfix.exe, freeadt.exe и распакованные архивные или испорченные файлы.
- Запустите adtfix.
- Нажмите Next. По кнопке Browse укажите директорию \temp\fix
- Начните проверку, нажав Next.
- Все файлы будут последовательно проверены. Перед именами правильных файлов появится слово VALID. Файлы с нарушенной внутренней структурой будут выделены. В этом примере это файлы DOCS0109.ADT, DOCZ0109.ADT.
- Что бы вылечить файлы нажмите FIX
- При лечении содержимое исправляемых файлов будет изменено, поэтому для каждого из файлов -.ADT и .ADM, входящих в одноименную таблицу, будет предложено сделать его bak-копию.
- Укажите директорию размещения bak-копий. По умолчанию будет предложена директория запуска утилиты. Отвечайте Сохранить.
- Перед исправленными файлами появляется слово FIXED.
- Перед тем, как завершить работу, утилита сообщает, что исправленые файлы могут содержать, коротко говоря, мусор и рекомендует произвести их чистку операцией Pack утилиты Advantage Data Architect. См ниже
Удаление мусора
- Перед тем как удалить мусор необходимо "отвязать" таблицы от Словаря базы данных утилитой freeadt.exe, которая ранее была записана вами в директорию \temp\fix. Перейдите в директорию \temp\fix и выполните freeadt. На приглашение командной строки наберите Y, Enter.
- Черный экран пропадет вместе сообщениями о том, что все таблицы директории отвязаны от Словаря.
- Для каждого вылеченного файла ассоциативно запускайте утилиту Advantage Database Architect, нажимая Enter на выбранном файле .ADT. В открывшемся окне выполняйте пункт меню Pack.
- Разрешайте чистку
- Копируйте вылеченные и вычищенные таблицы на их рабочее место в "Фабиус"
- Внимание! Обязательно удалите в "Фабиус" одноименные с заменяемыми файлы .ADI. Например, вы восстановили таблицу DOCS0109 и заменяете в директории \Fabius\Opdata файлы DOCS0109.ADT и DOCS0109.ADM. Сразу же после замены файлов, или перед ней, удалите файл DOCS0109.ADI. И так для каждой заменяемой таблицы.