powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка при ALTER INDEX ACTIVE
12 сообщений из 12, страница 1 из 1
Ошибка при ALTER INDEX ACTIVE
    #39277069
Freddie26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попросили посмотреть базу, мол медленно работает. Прогнал валидацию, всё в порядке. Открыл индексы и вижу, что индексы PK, FK и UNQ отключены с ключем RDB$INDEX_INACTIVE = 3.
Тут говорят можно просто включить индекс, а именно выполнить ALTER INDEX ACTIVE. Выполняю - ошибка: "Cannot create foreign key constraint FK_NAME. Partner index does not exists or is inactive."
Стоит FB 3.0, соответственно вручную включить индексы я не могу в системных таблицах. :) Остается только вручную их пересоздать или бэкап-рестор БД, но не об этом речь. Вопрос в том баг это или так задумано?

В доках к FB 3.0 на стр. 139 написано:
"Подсказка
Даже если индекс находится в активном состоянии оператор ALTER INDEX ACTIVE
всё равно перестраивает индекс. Таким образом, эту команду можно использовать
для перестройки индексов, автоматически созданных для ограничений PRIMARY KEY,
FOREIGN KEY, UNIQUE, для которых выполнение оператора ALTER INDEX INACTIVE
невозможно.".

В случае же с FB 3.0 ALTER INDEX INACTIVE выполняется без ошибок и более того индексы (PK, FK и UNQ) выключаются!
...
Рейтинг: 0 / 0
Ошибка при ALTER INDEX ACTIVE
    #39277072
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freddie26выполнить ALTER INDEX ACTIVE. Выполняю - ошибка: "Cannot create foreign key constraint
FK_NAME. Partner index does not exists or is inactive."

Ну так сначала первичные ключи, потом вторичные. Ясно же говорится.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка при ALTER INDEX ACTIVE
    #39277079
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freddie26В случае же с FB 3.0 ALTER INDEX INACTIVE выполняется без ошибок и более того индексы (PK, FK и UNQ) выключаются!

чего? Я во только что попробовал

Код: sql
1.
ALTER INDEX PK_BREED INACTIVE;



Код: plaintext
1.
2.
3.
4.
This operation is not defined for system tables.
unsuccessful metadata update.
ALTER INDEX PK_BREED failed.
action cancelled by trigger (2) to preserve data integrity.
Cannot deactivate index used by an integrity constraint.
...
Рейтинг: 0 / 0
Ошибка при ALTER INDEX ACTIVE
    #39277082
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freddie26,

грохай все ограничения FK, PK и создавай заново. Перед этим бекап сделать не забудь.
...
Рейтинг: 0 / 0
Ошибка при ALTER INDEX ACTIVE
    #39277084
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисгрохай все ограничения FK, PK и создавай заново. Ты не с той ноги встал ? :)
...
Рейтинг: 0 / 0
Ошибка при ALTER INDEX ACTIVE
    #39277097
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

ну а что тут ещё можно посоветовать?

Вот такого RDB$INDEX_INACTIVE = 3 вообще быть не должно. Там по идее может быть 0 и 1. Как туда 3 попала хз. Ладно где то сбой в одном месте и не тот байт записался, но в нескольких местах...
...
Рейтинг: 0 / 0
Ошибка при ALTER INDEX ACTIVE
    #39277099
Freddie26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
Спасибо! Меня что-то переклинило. Показалось что ругается на то, что индекс уже есть, мол пересоздавай его и только. Слава богу удалять индексы не придется, это всего лишь копия рабочей базы :)

Симонов ДенисFreddie26В случае же с FB 3.0 ALTER INDEX INACTIVE выполняется без ошибок и более того индексы (PK, FK и UNQ) выключаются!

чего? Я во только что попробовал

Код: sql
1.
ALTER INDEX PK_BREED INACTIVE;



Код: plaintext
1.
2.
3.
4.
This operation is not defined for system tables.
unsuccessful metadata update.
ALTER INDEX PK_BREED failed.
action cancelled by trigger (2) to preserve data integrity.
Cannot deactivate index used by an integrity constraint.


А состояние PK было ACTIVE? Я переключал с ключа 3 на ключ 1, т.е. шило на мало поменял, вот видимо и выполнилось без проблем.

Приношу свои извинения за смуту :)
...
Рейтинг: 0 / 0
Ошибка при ALTER INDEX ACTIVE
    #39277101
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Симонов Денис!
You wrote on 20 июля 2016 г. 14:04:02:

Симонов Денис> Вот такого RDB$INDEX_INACTIVE = 3 вообще быть не должно.ты себя препылесосил.
gbak -i
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка при ALTER INDEX ACTIVE
    #39277102
Freddie26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисhvlad,

ну а что тут ещё можно посоветовать?

Вот такого RDB$INDEX_INACTIVE = 3 вообще быть не должно. Там по идее может быть 0 и 1. Как туда 3 попала хз. Ладно где то сбой в одном месте и не тот байт записался, но в нескольких местах...

Скорее всего мне базу отдали после ошибки во время восстановления из бэкапа. Это по-моему объясняет появление 3 в состоянии индекса.
...
Рейтинг: 0 / 0
Ошибка при ALTER INDEX ACTIVE
    #39277103
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисКак туда 3 попала хз.
Код: sql
1.
2.
3.
4.
5.
6.
7.
const int DEFERRED_ACTIVE	= 3;	// RDB$INDEX_INACTIVE setting for Foreign Keys
					// This setting is used temporarily while
					// restoring a database. This was required
					// in order to differentiate a partial
					// "inactive" state of SOME indices from
					// "inactive" state of ALL indices (gbak -i)
					// -bsriram, 11-May-1999      BUG: 10016


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка при ALTER INDEX ACTIVE
    #39277110
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

о! Спасибо. Это у меня в доке нету.

Freddie26А состояние PK было ACTIVE? Я переключал с ключа 3 на ключ 1, т.е. шило на мало поменял, вот видимо и выполнилось без проблем.

Да уж. Ошибка здесь по идее должна была выдаваться.
...
Рейтинг: 0 / 0
Ошибка при ALTER INDEX ACTIVE
    #39277140
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Freddie26Симонов Денисhvlad,

ну а что тут ещё можно посоветовать?

Вот такого RDB$INDEX_INACTIVE = 3 вообще быть не должно. Там по идее может быть 0 и 1. Как туда 3 попала хз. Ладно где то сбой в одном месте и не тот байт записался, но в нескольких местах...

Скорее всего мне базу отдали после ошибки во время восстановления из бэкапа. Это по-моему объясняет появление 3 в состоянии индекса.]Именно так и есть.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка при ALTER INDEX ACTIVE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]