Ошибка при ремонте базы

Обсуждение программных комплексов "Smeta.RU" и "BabyСмета"

Модератор: Модераторы




Ошибка при ремонте базы

Сообщение mozgulina Ср Окт 22, 2014 10:45

Добрый день. При ремонте базы данных возникают ошибки:
"[0309915] gbak:cannot commit index FK_A_SMETA_CENLVL_ID
[0309916] gbak: ERROR:violation of FOREIGN KEY constraint "FK_A_SMETA_CENLVL_ID" on table "A_SMETA_CENLVL"
[0309917] gbak: ERROR: Foreign key reference target does not exist

[0309934] gbak:cannot commit index FK_A_SMETA_INDLVL_ID
[0309935] gbak: ERROR:violation of FOREIGN KEY constraint "FK_A_SMETA_INDLVL_ID" on table "A_SMETA_INDLVL"
[0309936] gbak: ERROR: Foreign key reference target does not exist "

а затем

[0309950] gbak:finishing, closing, and going home
[0309951] gbak:Database is not online due to failure to activate one or more indices.
[0309952] gbak:Run gfix -online to bring database online without active indices. "

База от версии 8.0.0.30. Мониторинг 4.0.2.0

Что можете посоветовать?
Аватара пользователя
 mozgulina
Активный участник
Активный участник
 
Сообщения: 208
Зарегистрирован: Ср Июн 22, 2005 1:55
Откуда: Москва
Репутация: 3 (?)

Ваша реклама

google adsense
Группа компаний «СтройСофт»
Зарегистрирован: Чт Авг 22, 2002 11:06

Откуда: Москва

Re: Ошибка при ремонте базы

Сообщение Voyager`tm Ср Окт 22, 2014 16:03

Были на форуме несколько тем по этой ошибке.
Лечение здесь
forum4/topic35990.html#p103781
После указанных действий рабочая база может быть нормально отремонтирована. К-сожалению, уже созданные до этого времени бэкапы восстановлению не подлежат (точнее, так - программа мониторинга баз данных не сможет этого сделать).

P/S. На название темы не обращайте внимания.
Аватара пользователя
 Voyager`tm
Един с Силой
Един с Силой
 
Сообщения: 759
Зарегистрирован: Пт Дек 04, 2009 10:34
Откуда: Москва
Репутация: 7 (?)

Re: Ошибка при ремонте базы

Сообщение mozgulina Ср Окт 22, 2014 19:52

Добрый день. Вроде зашел в свою базу под логином "Sysdba" и выполнил вот эти 2-а запроса:


delete from A_SMETA_INDLVL where not exists (select * from A_SMETA where A_SMETA.ID=A_SMETA_INDLVL.ID);
delete from A_SMETA_CENLVL where not exists (select * from A_SMETA where A_SMETA.ID=A_SMETA_CENLVL.ID);

Но все равно при ремонте базы выдает такую же ошибку. В чем засада?

Еще вопрос, после этих двух запросов должны ли быть какие-то подтверждения от базы, что они удалены?
Аватара пользователя
 mozgulina
Активный участник
Активный участник
 
Сообщения: 208
Зарегистрирован: Ср Июн 22, 2005 1:55
Откуда: Москва
Репутация: 3 (?)

Re: Ошибка при ремонте базы

Сообщение Voyager`tm Чт Окт 23, 2014 8:10

подтверждение есть в ответе от сервера, в IBExpert оно видно, что-то вроде "1 records deleted"
попробуйте выполнить не delete, а select * from ...
Увидите, есть ли "лишние" записи в таблицах
Аватара пользователя
 Voyager`tm
Един с Силой
Един с Силой
 
Сообщения: 759
Зарегистрирован: Пт Дек 04, 2009 10:34
Откуда: Москва
Репутация: 7 (?)

Re: Ошибка при ремонте базы

Сообщение mozgulina Чт Окт 23, 2014 11:13

Все получилось. Спасибо.
Аватара пользователя
 mozgulina
Активный участник
Активный участник
 
Сообщения: 208
Зарегистрирован: Ср Июн 22, 2005 1:55
Откуда: Москва
Репутация: 3 (?)



Вернуться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1




© 1995-2019 Группа компаний «СтройСофт»