DBAtlas · Атлас эксплуатации баз данных

ORA-01555: Snapshot too old: слишком маленький номер сегмента отката

Oracle

Что это значит?

Длительный запрос не смог получить старые данные undo, необходимые для построения согласованного по чтению образа на момент его начала, поскольку эта информация undo была перезаписана.

Почему возникает?

Маленькое табличное пространство undo, короткий UNDO_RETENTION, длительные запросы при очень интенсивном параллельном DML или цикл, выполняющий commit по той же таблице внутри запроса (fetch across commit).

Как исправить

Увеличьте UNDO_RETENTION и расширьте табличное пространство undo; по возможности оставьте его под автоматическим управлением (AUTOEXTEND on). Разбейте длинные запросы на более мелкие части или выполняйте их вне пиковых часов. Рассмотрите RETENTION GUARANTEE: ALTER TABLESPACE undotbs1 RETENTION GUARANTEE. Исправьте логику приложения, выполняющую commit внутри цикла.

Открыть в DBAtlas →

Ещё по этой СУБД