n1ro°
RU

Ошибки · Решение

Oracle ORA-01555: snapshot too old

Запросу понадобилась старая версия блока, но соответствующий undo больше недоступен.

Редакция N1RO · Проверено

Короткий ответ

ORA-01555 означает, что данные undo, необходимые длинному consistent read, уже были перезаписаны. Сверьте код с официальной поддержкой производителя и выполните только безопасные шаги.

Что означает ошибка

Запросу понадобилась старая версия блока, но соответствующий undo больше недоступен.

Возможные причины

  • Длинный SELECT работает дольше, чем удерживаются нужные undo records.
  • Undo tablespace/retention недостаточны для текущей write-нагрузки.
  • Batch обновляет большой объём данных одновременно с длительным чтением.

Что проверить

  • Измерьте длительность проблемного запроса и фактическую undo retention.
  • Посмотрите нагрузку на undo tablespace во время ошибки.
  • Определите, какие writer-транзакции активно перезаписывали данные в тот же период.

Безопасные шаги

  1. Оптимизируйте слишком долгий запрос и сократите ненужное время чтения.
  2. Для Automatic Undo Management подберите достаточные undo space и retention.
  3. Разведите тяжёлые batch updates и критичные long-running reports по времени, если это возможно.

Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.

Когда нужен сервис

  • Повторяющаяся ORA-01555 под обычной нагрузкой требует DBA-анализа sizing undo и профиля долгих запросов.

Похожие ошибки

  • /errors/oracle-ora-00001/
  • /errors/oracle-ora-00054/
  • /errors/oracle-ora-00904/

Что учитывать

Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.

Официальный источник

Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.