ib2007sp2- при подключении пишет: BLOB not found

Sikambr
Дата: 03.07.2012 07:24:06
Грохнулся винт, админы его восстановили.

Чтобы проверить базу, отключили сервер от сети и сделали
1. бэкап: gbak.exe -b -g
2. gfix.exe -sweep
3. восстановление: gbak.exe -r

До этих действий к базе подключались нормально, теперь при подключении пишет "BLOB not found"

В Interbase.log такие строки:
===begin===
IBMSERVER (Server) Tue Jul 03 08:54:26 2012
Metadata scan (1) for relation RDB$RELATIONS failed
IBMSERVER (Server) Tue Jul 03 08:54:26 2012
Database: D:\BORLAND\DATA\RENTS.IB
BLOB not found
===end===

База весит 22 гига.
Sikambr
Дата: 03.07.2012 07:38:17
Забыл написать, что Бэкап и Рестор прошли без ошибок.
kdv
Дата: 03.07.2012 11:16:09
непонятно, зачем был сделан пункт 2 со sweep.

если база проходит backup/restore, но видно что метаданные испорчены, то придется
- извлечь скрипт из базы (isql -x ...)
- создать новую базу этим скриптом
- перелить старую базу в новую (с отключением триггеров, синхронизацией генераторов и т.п.).

если сами не справитесь, то
http://www.ibase.ru/dbrepair.htm
Dimitry Sibiryakov
Дата: 03.07.2012 11:17:55

Sikambr
Чтобы проверить базу, отключили сервер от сети и сделали
1. бэкап: gbak.exe -b -g
2. gfix.exe -sweep
3. восстановление: gbak.exe -r

Шаманы. Чем обосновали пункт 2?

Posted via ActualForum NNTP Server 1.5

Sikambr
Дата: 03.07.2012 12:44:02
kdv
непонятно, зачем был сделан пункт 2 со sweep.

Дело в том, что в ночном батнике делается бекап + свип.
И этот батник проверяет наличие файла-флага, если он есть, то делается еще рестор.
Вот поэтому такие шаги.
Вообще свип копеечная операция, длится всего 10 минут, а бэкап 1 час, рестор 7-8 часов.

kdv
извлечь скрипт из базы (isql -x ...)

База весит 25гиг, и на нашем серваке это будет длится минимум сутки.

Сервер грохнулся вечером в субботу, ну и только потерялась информация только субботы.
Мы восстановили базу из ночного бэкапа с пятницы на субботу, а данные из битой базы скриптами перетянули.
kdv
Дата: 03.07.2012 12:46:22
Sikambr
База весит 25гиг, и на нашем серваке это будет длится минимум сутки.

isql -x извлекает скрипт метаданных. У InterBase нет средств извлечения данных в виде скрипта.
так что "это" будет длиться очень быстро. А вот сколько будет длиться перезаливка данных из старой БД в новую - не знаю. Используйте IBPump.
kdv
Дата: 03.07.2012 12:47:29
Sikambr
а данные из битой базы скриптами перетянули.

ну и славно. А зачем тогда топик был создан, раз базу уже восстановили и работу продолжаете?
Sikambr
Дата: 03.07.2012 13:21:35
kdv
А зачем тогда топик был создан, раз базу уже восстановили и работу продолжаете?

Это решение было принято час назад, а до этого танцевали над битой базой.
С утра решили, на всякий случай, запустить восстановление из последнего нормального бэкапа, который как раз и пригодился :)
kdv
Дата: 03.07.2012 14:03:58
вам надо бы offline dump организовать, на другой комп.
Sikambr
Дата: 05.07.2012 07:58:25
kdv
вам надо бы offline dump организовать, на другой комп.

Насколько я понял, из ib2007updateguide.html, online dump - это копия БД.
Т.е. вместо создания обычного бэкапа, создавая дамп, мы не теряем времени на восстановление.
Правильно?

Еще в документации по ib2007sp1 не нашел в gbak наличие ключа -validate, есть только ключ -no_validate.
Для меня было открытием, что по умолчанию, восстановление не сопровождается проверкой.
Всегда думал, что бэкап/рестор - это полная проверка БД.