мета-данные страницы
Форма "Первичное восстановление структуры базы данных"
Проект «Агбис Сервисные работы«
Предназначена для исправление ошибок в структуре базы данных.
«Клона» с помощью программ Surgeon FirebirdFirstAid и GFIX.
Восстановление структуры записей базы данных
В процессе работы при аварийном отключении питания, при появлении физических дефектов на жестком диске или по другим причинам могут теряться записи.
База данных продолжает работать однако происходит потеря данных и ее целостность нарушается. Это рано или поздно приводить к потере доступа и к остальным данным.
Поэтому нужно своевременно устранять эти ошибки. Часть ошибок может быть устранена в автоматическом режиме с помощью программ Surgeon FirebirdFirstAid и GFIX.
Потерянные записи таким образом восстановить невозможно. Для того чтобы можно было выполнить процедуру Backup/Restory добавляются фиктивные записи.
В дальнейшем эти фиктивные записи должны быть заменены на реальные на основании бумажных документов или из более ранних резервных копий, которые подключаются как БД Эталонная.
Все операции выполняются в БД Копия.
Surgeon FirebirdFirstAid
Surgeon FirebirdFirstAid предназначен для проверки структуры базы данных и исправление некоторых ошибок.
Файл для запуска программы указывается в поле «Файл программы». По умолчанию ..\FirstAID\FirebirdFirstAID.exe.
Запуск выполняется кнопкой Запуск FBFirstAID
Нажимается Later
Для проверки используется базы данных «Копия». Для того чтобы не выбирать файл визуально, он копируется в буфер обмена при запуске программы FirebirdFirstAID.exe.
При выборе базы данных можно вставит ее в диалог открытия базы данных.
Результат выполнения операций с помощью Surgeon FirebirdFirstAid не передаются в программу AgbDBAdmin.
Поэтому решение о продолжении восстановления принимается пользователем.
После выполнения всех операций с помощью Surgeon FirebirdFirstAid программа закрывается.
Начинаем проверки с помощью GFIX.
GFIX
GFIX: Проверка
Команда вызывается кнопкой GFIX: Проверка.
Для проверки используется командный файл d:\Agbis\agbDBAdmin\Temp\tmp_gfix_v.cmd
"C:\Program Files\Firebird\Firebird_2_5\bin\gfix.exe" -v -full -user sysdba -pa masterkey "d:\DB\FB2\ForRecovery\Orenburg\ARM_clone.FDB" 2>"d:\DB\FB2\ForRecovery\Orenburg\gfix_v.log"
Опции
-full - Используется вместе с -v[alidate] для проверки структур записей и страниц; освобождает неназначенные фрагменты записей.
-v[alidate] - validate database structure
Определяет и освобождает страницы, которые были выделены, не назначены никакой структуре данных. Также сообщает о разрушенных
структурах.
Результаты проверки фиксируются в лог-файле gfix_v.log, который размещается в папке с базой данных.
В случае отсутствия ошибок файл лога остается пустым.
Если в файле лога есть записи, то считается, что проверка завешена с ошибками.
GFIX: Исправление ошибок
Команда вызывается кнопкой GFIX: Исправление ошибок.
Для исправления ошибок используется командный файл d:\Agbis\agbDBAdmin\Temp\tmp_gfix_m.cmd
"C:\Program Files\Firebird\Firebird_2_5\bin\gfix.exe" -mend -user sysdba -pa masterkey "d:\DB\FB2\ForRecovery\Orenburg\ARM_clone.FDB" 2>"d:\DB\FB2\ForRecovery\Orenburg\gfix_m.log"
Опции
-m[end] - prepare corrupt database for backup
Отмечает разрушенные записи как неиспользуемые, следовательно, они будут пропущены при последующей проверке или копировании.
Результаты проверки фиксируются в лог-файле gfix_m.log, который размещается в папке с базой данных.
В случае отсутствия ошибок файл лога остается пустым.
Если в файле лога есть записи, то считается, что проверка завешена с ошибками.
Проверка целостности БД
Команда вызывается кнопкой Проверка целостности БД.
При сбоях в работе базы данных: из-за выключения питания, аварийном завершении работы приложений, физическом повреждении диска и других, возникают потерянные записи и потерянные значения полей.
Из-за нарушения связей по вторичным ключам или потери значений в полях с признаком NOT NULL операция Backup / Restory завершается с ошибкой.
Поэтому перед выполнением операции Backup / Restory требуется устранить такие ошибки.
Для качественного исправления нужно найти действительные значения, например, сверяясь с бумажными копиями документов или резервными копиями.
Для восстановления целостности выполняются следующие действия
- записи с PRIMARY KEY равным NULL удаляются
- для полей с признаком NOT NULL значение NULL заменяется на -1
- для вторичных ключей создаются фиктивные записи документов с PRIMARY KEY равным -1, а значения полей связи заменяются на -1
- в домене D_ID_INT64 устанавливается признак NOT NULL, если необходимо
Все изменения записываются в таблицу dba_log.
Это позволяет восстановить работу с базой данных.
Для окончательного восстановления нужно будет восстановить испорченные данные в поврежденных документах.
- Создается список корректированных во время восстановления записей.
- Открываются соответствующие документы и сверяются с бумажными или другими достоверными копиями.