SAPфорум.RU
https://sapboard.ru/forum/

Слетели первичные индексы ~0 в таблицах БД
https://sapboard.ru/forum/viewtopic.php?f=13&t=100392
Страница 1 из 1

Автор:  Sveselika [ Ср, авг 30 2023, 12:32 ]
Заголовок сообщения:  Слетели первичные индексы ~0 в таблицах БД

Здравствуйте, коллеги. Помогите, пожалуйста, разобраться с проблемой. Опишу приблизительно картину произошедшего. Мой запрос, который вызвал преобразование таблиц LIPS, MARA, VBRP и VBAP при удалении ошибочно добавленного в общий include Z-поля, был убит в процессе выполнения на тестовом сервере. В результате две таблицы успели проскочить (LIPS и MARA), хоть и с красной ошибкой, и система их успела преобразовать и отпустить. А две были в процессе преобразования. В дальнейшем с LIPS и MARA вопросы решились просто через se14 адаптацией. А для двух других (VBAP и VBRP) данные остались в теневых таблицах и при дальнейших манипуляциях были утеряны (но это не беда – копирование с продуктива есть), структуры поломались (в ABAP – словаре их подняли), а вот в самой БД убились первичные индексы VBRP~0 и VBAP~0.
При проверке в SE14 выдает: Объект базы данных для VBRP противоречивый: (ПервичИндек). БД - Индекс отсутствует.
При попытке в SE14 активировать и адаптировать БД выдает: Активация прошла успешно. Но при этом индекс не восстанавливается.
При попытке в SE14 активировать и адаптировать индекс БД выдает: VBRP~0 невозможно удалить. Удаление Индкс VBRP-0 не удалось.
При попытке в SE14 удалить индекс БД выдает: Удаление первичного индекса не разрешено.
После копирования данных в Z-таблицу при попытке в se14 нажать Удалить БД –> Создать БД –> проблема осталась та же. Данные вернули на место.
В DB02 в диагностике в пункте SQL Command Line при запросе DROP INDEX "VBRP~0" получили сообщение: Вы не можете удалить индекс напрямую.
В DB02->Диагностика->Отсутствующие таблицы и индексы->Создать в базе данных выдает сообщение: SQL-оператор не выполнен. Индекс не удалось полностью создать в базе данных. Создание Индкс VBRP-0 не удалось.
Подскажите, как быть в такой ситуации. С такой проблемой тестовый сервер скорее мертв, чем жив.

Автор:  LKU [ Ср, авг 30 2023, 20:11 ]
Заголовок сообщения:  Re: Слетели первичные индексы ~0 в таблицах БД

Не знаю, какая у вас БД, но предполагаю что Oracle. Мне вообще сложно представить, как в Oracle можно оставить таблицу, но лишить её primary key.
Поэтому организационно вижу два варианта:
1. Вы находите сколько-нибудь квалифицированного админа Oracle и он в sql консоли на уровне БД разбирается что с битыми таблицами.
Вплоть до того что грохнуть их на уровне БД целиком (drop table) и сгенерировать потом из SE11, раз уж данные из этой инстанции и так все утеряны и их потом откуда-то копировать будете.

2. Признать, что инстанция загублена и поднять новую тестовую среду как копию продуктива.

Автор:  LKU [ Ср, авг 30 2023, 20:18 ]
Заголовок сообщения:  Re: Слетели первичные индексы ~0 в таблицах БД

Две минуты в гугле показывают что да, таблицы в Oracle могут жить без Primary key и первичный ключ к существующей таблице можно добавить.
Вот первая попавшаяся ссылка:
https://tableplus.com/blog/2019/09/alte ... racle.html

Автор:  Удав [ Чт, авг 31 2023, 00:20 ]
Заголовок сообщения:  Re: Слетели первичные индексы ~0 в таблицах БД

Sveselika написал(а):
Мой запрос, который вызвал преобразование таблиц LIPS, MARA, VBRP и VBAP при удалении ошибочно добавленного в общий include Z-поля, был убит в процессе выполнения на тестовом сервере.

Это как? :shock:
Sveselika написал(а):
Подскажите, как быть в такой ситуации. С такой проблемой тестовый сервер скорее мертв, чем жив.

Восстановить данные теста из backup+журналы изменений или перезаписать целиком из продуктива.
2-й способ подразумевает доп. действия - зафиксировать очередь запросов, не дошедших до продуктива и перенести их повторно после копирования.

Автор:  Sveselika [ Чт, авг 31 2023, 09:08 ]
Заголовок сообщения:  Re: Слетели первичные индексы ~0 в таблицах БД

Ребята, спасибо за ответы! База у нас DB2 :'(. Копий тестовой базы нету. Будем думать....

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/