Чиним базы данных Interbase и Firebird
Saturday, August 14, 2010 7:08:38 AM
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 скопировать хотя бы часть данных.
Более подробная информация здесь.














AminAminux # Monday, November 29, 2010 10:24:34 PM
Pitstopper # Tuesday, November 30, 2010 7:22:32 AM
AminAminux # Tuesday, November 30, 2010 9:34:20 AM
Потому что многие почему-то думают, что средства восстановления - это типа такая волшебная палочка, которая сейчас все вернет назад из астрала.
Реально же - это самое последнее, что должно применяться. Ибо все подобные средства не гарантируют успешного результата.
Pitstopper # Tuesday, November 30, 2010 9:44:20 AM
AminAminux # Tuesday, November 30, 2010 2:01:20 PM
Unregistered user # Thursday, January 20, 2011 6:55:21 AM
Unregistered user # Thursday, March 17, 2011 4:24:51 AM