Restore возвращает ошибку!

Ремонт и восстановление баз данных InterBase, Firebird, Yaffil

Модераторы: kdv, Alexey Kovyazin

Ответить
Влад_Ф
Сообщения: 2
Зарегистрирован: 14 апр 2006, 11:21

Restore возвращает ошибку!

Сообщение Влад_Ф » 24 апр 2006, 08:22

Команда Gfix -v -full se.gdb не возвращает ошибок. Бэкап базы проходит без ошибок, а вот Restore на этапе создания индексов возвращает ошибку:
{
gbak: cannot commit index RDB$FOREIGN109
gbak: ERROR: violation of FOREIGN KEY constraint "PK_WRK" on table "WRK"
gbak: ERROR: action cancelled by trigger (3) to preserve data integrity
gbak: ERROR: Cannot deactivate primary index
gbak: Exiting before completion due to errors
}
Может что посоветуете?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 24 апр 2006, 08:36

чини мастер-деталь.

Влад_Ф
Сообщения: 2
Зарегистрирован: 14 апр 2006, 11:21

Сообщение Влад_Ф » 24 апр 2006, 09:34

kdv писал(а):чини мастер-деталь.


А начать с чего?

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 24 апр 2006, 13:31

В исходной базе бит либо индекс FK от этой таблицы, либо PK на той, на которую он ссылается. Из-за этого в детали есть записи, у которых нет мастера. Вот их и ищи

Код: Выделить всё

Select * From Detail
 Where Not Exists
  (Select 1 From Master Where Master.ID+0=Detail.Master_ID+0)
 
Эти +0 заставят выполнить поиск без индексов. Ну а что там потом с ними делать - видно будет.

wolverine
Сообщения: 4
Зарегистрирован: 29 мар 2005, 12:01

Сообщение wolverine » 10 июл 2006, 13:49

А у меня при ресторе вот такая ошибка. Индекс и таблица каждый раз разные. Подскажите в чем проблема??

bak: cannot commit index RDB$FOREIGN367
gbak: ERROR: lock conflict on no wait transaction
gbak: ERROR: unsuccessful metadata update
gbak: ERROR: object COMPANYMEMBERS is in use
gbak: ERROR: action cancelled by trigger (3) to preserve data integrity
gbak: ERROR: Cannot deactivate primary index
gbak: Exiting before completion due to errors

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 10 июл 2006, 14:10

В подключении кого попало к недорестроенной базе.

wolverine
Сообщения: 4
Зарегистрирован: 29 мар 2005, 12:01

Сообщение wolverine » 10 июл 2006, 14:22

Merlin писал(а):В подключении кого попало к недорестроенной базе.
А другой проблемы не может быть??
Вроде как все подключения заблокированны.

А что если ресторить с другим именем, затем базу переименовать???

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 10 июл 2006, 15:48

Теоретицки ещё могу подозревать computed поля с особо извращёнными селектами из всяких-разных объектах. Или дремучую бету какой-то версии севрера. Или кашу из версий.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 10 июл 2006, 16:36

wolverine писал(а):А что если ресторить с другим именем, затем базу переименовать???
А ты что - в рабочую БД ресторишь ???

Ответить