powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблемы с восстановление БД из поврежденного GBK
7 сообщений из 7, страница 1 из 1
Проблемы с восстановление БД из поврежденного GBK
    #38487075
Set Gecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Есть сервер FB 1.5, на Centos 5.8, есть поврежденный файл gbk - необходимо достать с него данные, при том что оригинального файла БД не осталось.
Запускаю рестор следующей командой:

Код: powershell
1.
/opt/firebird/bin/gbak -r -user sadmin -pass password -p 8192 -v /xxx/xxx.gbk /xxx/xxx.gdb 2>&1 | tee /xxx/restore.log



В итоге после непродолжительного восстановления получаем ошибку:

Код: powershell
1.
2.
3.
4.
gbak: adjusting an invalid decompression length from 85 to 49
gbak: ERROR: validation error for column ID_SHTASKMOVE, value "*** null ***"
gbak: ERROR:  warning -- record could not be restored
gbak: Exiting before completion due to errors



Подскажите пожалуйста, с какими ключами gbak можно еще попробовать выполнить рестор, либо есть ли какие-нибудь программные средства для того, чтобы достать данные из данного gbk?
Заранее спасибо!
...
Рейтинг: 0 / 0
Проблемы с восстановление БД из поврежденного GBK
    #38487093
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Проблемы с восстановление БД из поврежденного GBK
    #38487098
Set Gecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению я там уже был :(
С ключами для gbak рестора поиграл, но более или менее разумного результата не получил :(
...
Рейтинг: 0 / 0
Проблемы с восстановление БД из поврежденного GBK
    #38487115
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Set GeckoК сожалению я там уже был :(точно?
статьяДобавленный столбец NOT NULL

Это самая частая проблема, с которой сталкиваются разработчики. Известно, что IB позволяет добавлять новые столбцы к таблице даже если есть любое количество данных в этой таблице. При этом меняется формат таблицы (запись в системных таблицах), однако существующие записи никаким образом не обновляются. Процесс backup запишет данные как есть, и не обнаружив значения столбца установит флаг соответствующего столбца у записи в NULL. При restore контроль not null не даст записать такие данные в таблицу.! gbak в InterBase 7.x не проверяет при restore следующие ограничения - not null, check, primary, unique, foregin key. Для восстановления оригинального функционирования gbak процесс restore должен проводиться с ключом -validate.
В Firebird для gbak при restore нужно указывать дополнительный ключ -no_validity.Если такая ошибка при restore является единственной, то можно попытаться сделать следующее:

В базе данных у столбца убрать контроль not null. Сделать backup только метаданных (ключ -m). Если оригинальной базы уже нет, т.е. есть только бэкап, то сделать restore только метаданных, убрать в базе у столбца контроль not null...сравнить побайтово бэкап метаданных, полученный пунктом 1, и бэкап с данными. Сравнивать, естественно, по размеру бэкапа метаданных.Просмотреть обнаруженные отличия hex-редактором, чтобы убедиться, что отличия находятся примерно в месте расположения объявления домена или столбца.Исправить отличия hex-редактором в backup.
Сделать restore только метаданных. Если флаг not null у столбца или домена пропал, значит все хорошо, и можно делать restore всего backup.

Если приведенная процедура кажется вам сложной, или вы не хотите заниматься этим в будущем - перед бэкапом используйте утилиту CheckNull.
...
Рейтинг: 0 / 0
Проблемы с восстановление БД из поврежденного GBK
    #38487163
Set Gecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При добавлении ключа -no_validity :

Код: powershell
1.
/opt/firebird/bin/gbak -r -user sadmin -pass password -no_validity -p 8192 -v /xxx/xxx.gbk /xxx/xxx.gdb 2>&1 | tee /xxx/restore.log



Получаем:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
gbak:    6180000 records restored
gbak: adjusting an invalid decompression length from 85 to 49
gbak:    6180203 records restored
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: ERROR: string truncated
gbak: Exiting before completion due to errors



При добавлении ключа -m :

Код: powershell
1.
/opt/firebird/bin/gbak -r -user sadmin -pass password -no_validity -m -p 8192 -v /xxx/xxx.gbk /xxx/xxx.gdb 2>&1 | tee /xxx/restore.log



Получаем:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
gbak: restoring exception ERRNUM
gbak: restoring exception OPA_PMAXPRICE
gbak:     committing metadata
gbak:     restoring index PK_MARKET_ACTION_OPART
gbak:     restoring index FK_MARKET_ACTION_OPART_OP
gbak:     restoring index FK_MARKET_ACTION_OPART_ART
gbak:      1323 records ignored
gbak:      1 records ignored
gbak:     restoring index RDB$PRIMARY53
gbak:     restoring index PK_WS_IMPORT_TRANSFORM
gbak:     restoring index I_QUEUE_REQUEST
gbak:     restoring index PK_ALC_MINPRICE
gbak:      109 records ignored
gbak:      61157 records ignored
gbak:     restoring index P_SH_TASK_MOVE
gbak:     restoring index F_SHTASKMOVE_ART
gbak:     restoring index F_SHTASKMOVE_ARTTASK
gbak:     restoring index F_SHTASKMOVE_EMPL
gbak:     restoring index F_SHTASKMOVE_TASK
gbak:     restoring index I_SHTASKMOVE_CHCODE
gbak:     restoring index I_SHTASKMOVE_LASTDATE
gbak: adjusting an invalid decompression length from 85 to 49
gbak:      19819 records ignored
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: do not recognize table attribute 0 -- continuing
gbak: ERROR: string truncated
gbak: Exiting before completion due to errors



Может быть я указываю некорректные ключи gbak?
...
Рейтинг: 0 / 0
Проблемы с восстановление БД из поврежденного GBK
    #38487320
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Set Geckoесть ли какие-нибудь программные средства для того, чтобы достать данные из данного gbk? http://www.ib-aid.com/products/firebird_interbase/IBBackupSurgeon
http://www.ibase.ru/prices/IBSurgeon_pricelist.htm
...
Рейтинг: 0 / 0
Проблемы с восстановление БД из поврежденного GBK
    #38487459
Set Gecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня.
Закройте тему пожалуйста.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблемы с восстановление БД из поврежденного GBK
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]