Как восстановить разрушенные данные БД ADS
Руководство по использованию утилиты 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.
Advantage Database Table Repair Utility
Это приложение проверит файлы ADT на валидность ( от латинского validus - здоровый ) в указанной папке. Если файлы повреждены, вы сможете исправить ( fix ) их. Для того, чтобы предотвратить разрушение файлов ADT, поставьте мощный UPS, т.е. бесперебойный источник питания, на сервер. После нажатия на кнопку FIX, приложение предложит вам сохранить испорченные файлы, перед тем, как лечить их.
Это приложение проверяет следующие ошибки:
- неверный размер файла
- неверное количество записей
- записи, которые не были освобождены транзакцией
- разрушение мемо ( т.е. ADM ) файлов
- неверные переходы с записи на запись и некорректные автоинкрементные значения
ВНИМАНИЕ: лечение может привести к частичной потере данных
Нажмите 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. И так для каждой заменяемой таблицы.