Всем привет.
Делаю обрезку базы, уже вторая попытка. Этап удаления Z-отчетов проходит, без проблем. Начинается этап удаления документов.
Доходит до 151000 из 412000 и останавливается(в 16:04).
При том что 151000 документов удаляется за 20 мин.
Спустя 12 часов в алертлоге
Код:
Wed Apr 18 01:24:12 2018
ORA-01555 caused by SQL statement below (SQL ID: dsp17bpdwbfcv, Query Duration=33578 sec, SCN: 0x0000.79d042a9):
SELECT T.ROWID, T.DOCTYPE, T.ID FROM SMDOCUMENTS D, TTDOCLIST T WHERE T.DOCTYPE = D.DOCTYPE AND T.ID = D.ID AND ROWNUM <= 1000
Ну и в СМ
Код:
2018.04.18 (среда) 08:19:30 1.36.1.0 sp2
----- Прерывание работы программы -----
сообщение: "ORA-01555: snapshot too old: rollback segment number with name "" too small
ORA-06512: at "SUPERMAG.PCLOSE", line 2072
ORA-06512: at "SUPERMAG.PCLOSE", line 2480
ORA-06512: at "SUPERMAG.SMTRUNCATEDB", line 4
ORA-06512: at line 1"
По времени только не пойму, почему такая разница
В Таблице SMTRUNCATEDB последние значения 16:04. Т.е. после обработки 151000 записей больше нет. При том всего значений в логе куда меньше, всего 1456
Делал трассировку сессии. На вид все хорошо, документы перебирает, удаляет, коммитит.
Увеличил undo_retention 7200
Продолжил обрезку. Значения поменялись, стали 151000 из 260012
И так уже 3 часа.
Сессия активна, выполняемые запросы меняются
Трассировку не стал делать, ибо уверен что там увижу тоже самое что и в прошлый раз.
При том сегмент undo этой сессии растет _SYSSMU5_1229618011$ PUBLIC UNDOTBS1 ONLINE 736(мб) 1(Активная транзакция)
Не очень верится что изменение undo_retention поможет. Может только отсрочит падение.
Может нужно копать куда-то в другую сторону, пока не представляю в какую.
Есть идеи?