Обновление Oracle для материализованного представления завершается неудачно с ORA-01555
У меня есть материализованное представление для обновления по требованию:
CREATE MATERIALIZED VIEW XYZ
REFRESH COMPLETE ON DEMAND
AS
SELECT * FROM ABC WHERE LAST_UPD > SYSDATE-30;
Когда я запускаю процедуру для обновления, она терпит неудачу каждые два дня.
Обновить команду:
dbms_mview.refresh(list => 'XYZ',
method => 'C',
parallelism => 0,
atomic_refresh => false);
Ошибка:
1 - ОШИБКА В MERGE: ORA-12008: ошибка в пути обновления материализованного представления ORA-01555: снимок слишком старый: сегмент отката с номером 406 с именем "_SYSSMU406_3487494604$" слишком мал ORA-02063: предыдущая строка из IJSFASIEBEL
Я читал, что использование select * для создания материализованного представления может привести к этой ошибке, но я отбросил представление и воссоздал его много раз, обновление выполняется нормально в один день и выходит из строя на следующий день. В базовую таблицу не было внесено никаких изменений.
Может кто-нибудь сказать мне, что означает сообщение об ошибке или что может быть причиной проблемы?
2 ответа
Пратхик Поннуру,
Пожалуйста, проверьте, есть ли в таблице какие-либо большие объекты, проверьте, нет ли повреждений в больших объектах. Если LOB поврежден, то эта ошибка раньше приходила.... Недавно я столкнулся с той же проблемой, я проверяю повреждение всех объектов в таблице и после дальнейшего исследования обнаружил некоторые поврежденные сегменты объектов, которые позже я установил в blob_null ().
- Milind Kale
Проблема заключается в том, что ваши сегменты отката недостаточно велики для выполняемого запроса, учитывая другие обновления, происходящие в базе данных одновременно.
Существует полное обсуждение того, что это значит здесь:
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:275215756923
Возможные решения:-
- Создайте больший сегмент отката, чтобы во время обновления происходило больше изменений без исчерпания пространства отката
- Создание индекса на LAST_UPD для повышения скорости запроса (если это действительно так)
- Запуск обновления в спокойное время суток