ORA-01555: snapshot too old

详细原因

  1. 长查询执行时间过长,undo 回滚段数据被新 DML 覆盖;
  2. undo 表空间过小、undo_retention 保留时间太短;
  3. 大量并发更新,undo 段快速复用;
  4. 归档未开、闪回参数配置过低。

完整排查 & 解决

  1. 调大 undo 保留时间
sql
alter system set undo_retention=3600 scope=both; -- 保留1小时回滚数据
  1. 扩容 undo 表空间(同普通表空间扩容命令)
  2. 拆分超大查询,分批分页读取数据;
  3. 开启自动扩展 undo 数据文件。
上一篇 【转载】HCIE R&S 备考笔记 FTP技术原理
下一篇 Linux 块设备驱动开发:从请求队列到 I/O 调度的内核路径解析