Показаны различия между двумя версиями страницы.
repair [2014/05/26 20:26] sd создано |
repair [2020/04/07 16:18] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | Восстановление поврежденной базы данных Interbase или Firebird | ||
- | |||
- | ВАЖНО! Перед началом восстановления убедитесь что все пользователи отключены от сервера и сделайте копию файла базы данных. Если нет доступа ко всем компьютерам в сети на которых запущены приложения подключенные к базе данных, | ||
- | |||
- | Войдите в каталог Bin в папке, куда был установлен сервер Firebird. Для того, чтобы не работать с " | ||
- | |||
- | Проверим базу данных на наличие повреждений: | ||
- | |||
- | gfix -v -full -user SYSDBA -pas masterkey a4on_db.fdb | ||
- | |||
- | вместо gdbase.gdb укажите полный путь к своему файлу базы данных (хорошая идея: для того чтобы не обременять себя вводом длинного пути, скопировать файл базы данных непосредственно в каталог BIN). Имя сервера указывать не надо! | ||
- | |||
- | Если утилита отработала и не выдала ничего на экран, то с базой все нормально. | ||
- | |||
- | Если есть повреждения, | ||
- | |||
- | gfix -mend -full -ignore -user SYSDBA -pas masterkey a4on_db.fdb | ||
- | |||
- | Проверим, | ||
- | |||
- | gfix -v -full -user SYSDBA -pas masterkey a4on_db.fdb | ||
- | |||
- | Если повреждения остались, | ||
- | |||
- | gbak -b -v -ig -g -user SYSDBA -pas masterkey a4on_db.fdb db.fbk | ||
- | |||
- | Здесь применены следующие ключи: | ||
- | |||
- | -b -- создавать архивную копию базы; | ||
- | -v -- выводить на экран подробный лог; | ||
- | -ig -- игнорировать ошибки в данных; | ||
- | -g -- запретить сборку мусора при чтении из базы. | ||
- | |||
- | gbak -c -v -user SYSDBA -pas masterkey db.fbk a4on_new.fdb | ||
- | |||
- | Обратите внимание, | ||
- | |||
- | При серьезных повреждениях базы данных в некоторых таблицах могут пропасть записи из-за чего не восстановятся внешние ссылки на эти таблицы. Или наоборот, | ||
- | |||
- | Спасти базу можно следующим образом: | ||
- | |||
- | gbak -c -i -user SYSDBA -pas masterkey db.fdb a4on_new.fdb | ||
- | |||
- | Затем, с помощью любой оболочки, | ||
- | |||
- | Если база повреждена настолько, | ||
- | |||
- | Пример команды с вышеупомянутыми ключами: | ||
- | |||
- | gbak -c -i -n -o -user SYSDBA -pas masterkey db.fdb a4on_new.fdb | ||
- | |||
- | Как и в предыдущем случае, | ||