Форум программистов CodeGuru
18 Сентябрь 2018, 23:44:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Невосстанавливаемый backup  (Прочитано 19068 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DENISDV
Новичок
*
Офлайн Офлайн

Сообщений: 1


Просмотр профиля
« : 10 Сентябрь 2009, 13:24:08 »

Доброго времени суток господа!

Есть действующая рабочая база данных Firebird (DB.FDB). Её backup проходит успешно, а вот при restore базы данных DB.gbk возникает ошибка:

gbak:    activating and creating deferred index PK_AI_RAIDERS
gbak:cannot commit index PK_AI_RAIDERS
gbak: ERROR:attempt to store duplicate value (visible to active transactions) in unique index
"PK_AI_RAIDERS"
gbak: ERROR:action cancelled by trigger (3) to preserve data integrity
gbak: ERROR:    Cannot deactivate index used by a PRIMARY/UNIQUE constraint
gbak:Exiting before completion due to errors

Как видно БД не восстанавливается. Подскажите пожалуйсто, в чём дело и как можно исправить эту ошибку?

P.S. А иначе мне конец...
Записан
holdmann
Пользователь
***
Офлайн Офлайн

Сообщений: 262



Просмотр профиля
« Ответ #1 : 11 Сентябрь 2009, 00:36:09 »

гугл
первый сверху



Цитировать
! никогда не делайте restore поверх существующей базы данных. В случае ошибки при restore вы лишитесь оригинальной базы данных.

9. Если при restore есть ошибки, то нужно попробовать следующие ключи:

-inactive, если есть проблема с индексами, то с этим ключом база будет восстановлена с деактивированными индексами. Их можно потом активировать (altex index X active) поодиночке.

-one_at_a_time, этот ключ приводит к commit после восстановления каждой таблицы. По крайней мере будет восстановлена хотя бы часть таблиц.

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

Елси вы хотите купить, продать, отремонтировать автомобиль в Ижевске: Вам сюда =)
(c)holdmann
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!