DBAtlas · 数据库运维图谱

ORA-01555: Snapshot too old: rollback segment number too small(快照过旧:回滚段编号过小)

Oracle

含义

长时间运行的查询无法访问构建其开始时刻读一致性映像所需的旧 undo 数据,因为这些 undo 信息已被覆盖。

原因

undo 表空间过小、UNDO_RETENTION 过短、在并发 DML 非常繁重时运行长查询,或在查询内部对同一张表循环提交(fetch across commit)。

解决方法

增大 UNDO_RETENTION 并扩大 undo 表空间;尽可能交由自动管理(AUTOEXTEND on)。将长查询拆分为更小的部分或在非高峰时段运行。考虑 RETENTION GUARANTEE:ALTER TABLESPACE undotbs1 RETENTION GUARANTEE。修正在循环内提交的应用逻辑。

在 DBAtlas 中打开 →

同一数据库的其他条目