Восстановление базы данных Firebird

Контроль доступа

Есть такая система контроля доступа – PERCo S-20. В качестве СУБД использует Firebird. Иногда, по разным причинам, база данных повреждается. Повреждения могут быть критичными, а база – не подлежащей восстановлению, поэтому обязательно нужно делать бэкапы. Даже так – ОБЯЗАТЕЛЬНО НУЖНО!!! ДЕЛАТЬ БЭКАПЫ!!!

Тем не менее, часто, никто их не делает. Следовательно, восстанавливать неоткуда и нужно чинить. В ПО S-20 встроены средства проверки целостности БД и её восстановления. Этого бывает достаточно, но не всегда.

Можно попробовать восстановить БД утилитами самой же Firebird gfix и gbak.

  1. Для начала делаем копию базы данных, чтобы, в случае чего, было с чем обратиться за помощью к кому-нибудь более знающему.
  2. Проверяем базу данных на повреждения
    gfix -v -full -user sysdba -pass masterkey corruptdb.fdb, если ругается и ничего не хочет делать, то добавляем ещё ключ -ignore.
  3. Пытаемся исправить ошибки в базе данных
    gfix mend -user sysdba -pass masterkey corruptdb.fdb, если опять ругается, опять добавляем -ignore.
  4. Повторно проверяем на повреждения базу данных (см.п.3)
  5. Делаем резервную копию базы данных. Даже если есть ошибки. Бэкапа ведь нет и лучше спасти часть данных, чем потерять все.
    gbak -b -v -ig -g -user sysdba -pass masterkey corruptdb.fdb backup.fbk
  6. Восстанавливаем базу данных из резервной копии в новый файл
    gbak -c -v -user sysdba -pass masterkey backup.fbk restoreddb.fdb

Описание gfix

Описание gbak

За прошедшее с написания статьи время прибегал к такому способу лечения несколько раз с неизменно положительным результатом. Возможно какие-то данные и терялись, но внешне это никак не проявлялось. Система становилась работоспособной.

Оцените статью
( Пока оценок нет )
МихаТроник
Добавить комментарий