Ошибки · Решение
Oracle ORA-01555: snapshot too old
Запросу понадобилась старая версия блока, но соответствующий undo больше недоступен.
Короткий ответ
ORA-01555 означает, что данные undo, необходимые длинному consistent read, уже были перезаписаны. Сверьте код с официальной поддержкой производителя и выполните только безопасные шаги.
Что означает ошибка
Запросу понадобилась старая версия блока, но соответствующий undo больше недоступен.
Возможные причины
- Длинный SELECT работает дольше, чем удерживаются нужные undo records.
- Undo tablespace/retention недостаточны для текущей write-нагрузки.
- Batch обновляет большой объём данных одновременно с длительным чтением.
Что проверить
- Измерьте длительность проблемного запроса и фактическую undo retention.
- Посмотрите нагрузку на undo tablespace во время ошибки.
- Определите, какие writer-транзакции активно перезаписывали данные в тот же период.
Безопасные шаги
- Оптимизируйте слишком долгий запрос и сократите ненужное время чтения.
- Для Automatic Undo Management подберите достаточные undo space и retention.
- Разведите тяжёлые batch updates и критичные long-running reports по времени, если это возможно.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Повторяющаяся ORA-01555 под обычной нагрузкой требует DBA-анализа sizing undo и профиля долгих запросов.
Похожие ошибки
- /errors/oracle-ora-00001/
- /errors/oracle-ora-00054/
- /errors/oracle-ora-00904/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.