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

Ошибка при конвертации 7.11-7.12: реляция на таблицу не найд

Добавлено: 14 янв 2006, 12:40
Andrey
Добрый день.
При конвертации выдается сообщение об ошибке:
ALTDREL.LOT(23)Ошибка : Реляция на таблицу с кодом 1430 не найдена и предлагает устранить эту ситацию.
1430 это таблица KatParty. Как победить?

Добавлено: 16 янв 2006, 12:41
thor
Место ошибки в ALTDREL.LOT
Alter table SPORDER
delete constraint
( foreign key (CPARTY)
References KATPARTY
primary key KATPARTY01
)
;
Следовательно, надо смотреть свойства(индексы) CPARTY и KATPARTY
На какой платформе Галактика?
Если Pervasive, то м.б. отребилдить эти таблицы.
Если MS SQL или Oracle, то также проверить структуру таблиц на сервере - все ли хорошо с индексами.
Если просто отсутствует ссылка, то можно закоментировать этот кусок кода, т.к. затем она заново создается при выполнении скрипта ALTREL.LOT

Добавлено: 16 янв 2006, 12:49
WiRuc
Правильный путь - запустить "Базы данных\Проверка таблиц базы данных".
Неправильный путь (но более быстрый :grin: ) - создать реляцию самому или откорретировать ALTREL.LOT

Добавлено: 16 янв 2006, 13:17
Andrey
Платформа Oracle. Проверка таблиц и индексов на сервере (Analyze) прошла успешно. А как определить место ошибки в файле ALTDREL.LOT? Что значит (23) в скобках? Соответсвенно, как самому создать реляцию?

Добавлено: 16 янв 2006, 14:06
WiRuc
Еще раз
WiRuc писал(а):запустить "Базы данных\Проверка таблиц базы данных".
Не Оракловую Analyze, а интерфейс в самой Галактике.

Добавлено: 17 янв 2006, 12:09
Andrey
Галактическая проверка таблиц и индексов дала следующий результат:
Права пользователя из группы GAL711#PUBLIC на таблицу TMPSPUNICALC не соответствуют словарю
-ИСПРАВЛЕНО-
Права пользователя из группы GAL711#PUBLIC на таблицу TMPTUNEIMP не соответствуют словарю
-ИСПРАВЛЕНО-
Права пользователя из группы GAL711#PUBLIC на таблицу TMPUNICALC не соответствуют словарю
-ИСПРАВЛЕНО-
Индекс X$FILES0 у таблицы X$FILES некорректен или отсутствует
Индекс X$FILES1 у таблицы X$FILES некорректен или отсутствует
Индекс X$FILES2 у таблицы X$FILES некорректен или отсутствует
Индекс X$FILES3 у таблицы X$FILES некорректен или отсутствует
Индекс X$FILES4 у таблицы X$FILES некорректен или отсутствует

Добавлено: 24 янв 2006, 11:37
Andrey
Ставлю тестовую локальную базу под первасивом с тестовыми данными галактики. Запускаю в саппорте кусок кода из файла altdrel.lot на котором выдается ошибка:

Alter table SPORDER
delete constraint
( foreign key (CPARTY)
References KATPARTY
primary key KATPARTY01
)
;

и получаю сообщение, что реляция не на таблицу не найдена. Почему?

Добавлено: 19 апр 2006, 17:47
Andrey
Добрый день
to thor: есть несколько замечаний-вопросов:
1.реляция видна при прсомотре сылочной целостности из саппорта и если ее создать заново, то уже видим две одинаковых
2.если закоментировать этот кусок кода, то потом выскакивает такая же ошибка но на другой таблице
3. если закоментировать все такие ошибки, потом создать реляции (AltRel.lot), то "двойные" реляции чем-то грозят или нет?
Спасибо.

Добавлено: 20 апр 2006, 13:46
thor
Реляции хранятся в таблице X$RELATE
Если выполнить в САППОРТЕ в SQL запрос типа

select * from x$relate
where XP$pfilecode=1430;

получим список реляций таблицы KATPARTY, где запись в поле
"Код подцепляемой таблицы", равная 1112 (CPORDER) и есть искомая реляция.

Только что проводил на тестовой БД (правда 712)
Alter table SPORDER
delete constraint
( foreign key (CPARTY)
References KATPARTY
primary key KATPARTY01
)
;
отработал без проблем, строка после выполнения первого запроса с кодами 1430 и 1112 исчезла и при просмотре реляций SPORDER в САППОРТЕ ссылка на KATPARTY исчезла.
После выполнения части из AltRel.lot
Alter table SPORDER
foreign key (CPARTY)
References KATPARTY
primary key KATPARTY01;
все восстановилось.

Смущает сообщение при проверке по индексам
Индекс X$FILES0 у таблицы X$FILES некорректен или отсутствует
Индекс X$FILES1 у таблицы X$FILES некорректен или отсутствует
Индекс X$FILES2 у таблицы X$FILES некорректен или отсутствует
Индекс X$FILES3 у таблицы X$FILES некорректен или отсутствует
Индекс X$FILES4 у таблицы X$FILES некорректен или отсутствует

В Оракле не сталкивался, а на СКЛ-сервере получали картину, когда в Саппорте структура таблицы показывала наличие индексов, а на экземпляре СУБД индексов по таблице вовсе не было. Пересоздание таблицы на уровне СКЛ-сервера с пересозданием индексов результата не дало. В результате делали откат на резервную копию.
Сбой БД произошел после заполнения дискового пространства не серваке.
То бишь для начала я проверил бы наличие в X$Relate записи о соответствующей реляции. Если ее нет, то это одно, а если есть, но не удаляется (не находится), то вопрос по X$FILES, если там все индексы отсутствуют или порушены, то как вообще база-то работает

Добавлено: 20 апр 2006, 15:27
WiRuc
Индекс X$FILES0 у таблицы X$FILES некорректен или отсутствует
Индекс X$FILES1 у таблицы X$FILES некорректен или отсутствует
Индекс X$FILES2 у таблицы X$FILES некорректен или отсутствует
Индекс X$FILES3 у таблицы X$FILES некорректен или отсутствует
Индекс X$FILES4 у таблицы X$FILES некорректен или отсутствует
Если мне не изменяет память, то это глюк Галактики. По крайней мере в 5.85 тоже так ругалась на X$FILES, хотя все было нормально.

Добавлено: 20 апр 2006, 15:47
Andrey
выполнил предлагаемый запрос:
select * from x$relate
where XP$pfilecode=1430;
и реляция с кодом подцепляемой таблицы 1112 присутсвует. в ответе на запрос 29 строк

Администрирование

Добавлено: 20 апр 2006, 17:02
Olik
Andrey, получилось ли у тебя конвертнуть базу с 7.11 в 7.12?

Добавлено: 20 апр 2006, 17:45
Andrey
напрямую - пока нет

Добавлено: 21 апр 2006, 13:00
Olik
У кого Галактика 7.11? Вышлите пож. таблицу RELATE.ADF на адрес trefilovao@yandex.ru

Добавлено: 24 апр 2006, 16:06
Andrey
ну, кто-то сможет объяснить как так происходит:
выгрузил файлы в dbf, загрузил локально под бетрив, запустил конвертор - все прошло ОК, а если под тем же бетривом (до конвертации, но после импорта из dbf) запустить скрипт:

Alter table SPORDER
delete constraint
( foreign key (CPARTY)
References KATPARTY
primary key KATPARTY01
)
;

получаю ошибку Реляция на таблицу с кодом 1430 не найдена.
Как это происходит?