Итак, у Вас "упала" БД. Приступаем к быстрой "реанимации". Предупреждаю лишь о том, что данные советы могут не помочь при большом количестве ошибок в БД.
1. Для ремонта баз данных рекомендуется использовать именно утилиту командной строки
gfix. Повреждения баз данных могут быть исправлены как при помощи только
gfix, так и одновременно
gfix и
gbak.
Делаем копию БД, ибо с оригиналом работать небезопасно. При копировании Вы должны быть уверены, что в БД никто не работает в данный момент;
2. Проверяем БД на наличие повреждений. Для этого открываем командную строку (либо консоль *nix), переходим в директорию с БД и выполняем:
gbak.exe (или ./gbak в *nix) -v -full -user SYSDBA -pass masterkey database.gdb
3.Если выдаются ошибки "checksum error", выполняем команду:
gfix.exe -v -ignore -user SYSDBA -pass masterkey database.gdb
4.Если предыдущая команда обнаружила ошибки, их необходимо исправить командой:
gfix.exe -mend -user SYSDBA -pass masterkey database.gdb
5.Проверяем:
gfix.exe -v -full -user SYSDBA -pass masterkey database.gdb
6.Если на данный момент все еще есть ошибки, надо попытаться сделать бэкап, отключив при этом сборку "мусора" (ключ -g):
gbak.exe -b -v -ig -g -user SYSDBA -pass masterkey database.gdb database.gbk
Ключ -ig игнорирует ошибки при чтении структур данных, пытаясь сохранить в бэкап все неповрежденные структуры и данные;
7. Теперь пытаемся восстановить базу данных:
gbak.exe -c -r -v -user SYSDBA -pass masterkey database.gbk new_database.gdb
8. Если же все-таки не получилось нормально "свернуть-развернуть" БД, но доступ к ней есть, можно попробовать утилитой
IBPump скопировать хотя бы часть данных.
Более подробная информация здесь.