Страница 1 из 1

Ошибка при backup-е (Operation violates CHECK constraint...)

Добавлено: 19 мар 2006, 19:28
alexforgetmenot
Доброго времени суток всем,

есть проблема, не могу понять, есть база (IB server 7.0), пытаюсь сделать бэкап в transportable формате вылетает ошибка "Operation violates CHECK constraint on view or table. System memory exhausted.". Ошибка появляеться при записи одной из таблиц. Никаих там CHECK-ов нет. Просмотрел все индексы, все ок. Даже поудалял внешние ключи, ошибка остается. Проверяю базу по полной - нет ошибок. Бэкап в non-transportable формате выполняется нормально.

Заранее спасибо

Добавлено: 20 мар 2006, 10:27
kdv
а зачем тебе transportable формат? ты в курсе, ЧТО именно это такое?

p.s. даю подсказку: transportable - это "переносимый". Вопрос - между чем и чем.

p.p.s.
Проверяю базу по полной - нет ошибок.
чем это ты ее проверяешь на проблемные check constraint? Таких средств нет.

Добавлено: 20 мар 2006, 12:51
alexforgetmenot
На предмет транспортэйбл... ну возможно в твоих словах есть ризон на предмет нужности бэкапа в этот формат. Но хрен его знаит... вдрух платформа измениццо, на данный момент это не предвидиться, но кто его знает. Это первое. На предмет проверки по полной, я имел ввиду -full gfix-а (ну мало ли может что со страницами не то, сбои бывали в питании), при том, база небольшая... так что я не поленился все поля являющиеся ключами (в т.ч. внешними) просмотреть на соответсвие данных. Даже после удаления всех ключей, в т.ч. первичных, ошибка оставалась. Страно это... в не транспортабельный все ОК, а в транспортабельный ошибка... Такое впечатление что какой то баг в самом сервере. Забыл, если сохранять только метаданные в транспортабельный, то все ОК.

Добавлено: 20 мар 2006, 13:23
Merlin
Имхо там клиент не той системы и бакап через сервисы, а не gbak-ом. Если в IB7 не переставили всё с ног на голову, бакап по умолчанию идёт в transportable.

Добавлено: 20 мар 2006, 15:44
kdv
gfix проверяет физические структуры, но не логические. то есть check constraints он не проверяет.
transportable - да, по умолчанию, но gbak-у обычно эти ключи не указывают.
Таки да, "транспортабельность" это переносимость бэкапа с одной аппаратной платформы на другую, как минимум где integer хранятся в памяти по разному (младшие и старшие байты).
Например, транспортабельный бэкап нужен (теоретически) при переходе с IB for Win/Linux на IB for Solaris (SPARC), или обратно.

p.s. 7.0 - понятие слегка абстрактное. www.ibase.ru/devinfo/allversions.htm , плюс и правда проверить версию gbak по gbak -z.

Добавлено: 20 мар 2006, 15:57
alexforgetmenot
gbak version WI-V7.0.0.206... мдя