ORA-01555: 快照太旧: 名为 "" 的回滚段号太小
Posted
技术标签:
【中文标题】ORA-01555: 快照太旧: 名为 "" 的回滚段号太小【英文标题】:ORA-01555: snapshot too old: rollback segment number with name "" too small 【发布时间】:2011-06-20 06:59:57 【问题描述】:ORA-01555:快照太旧:名称为“”的回滚段号太小
当我调用过程之后,我正在编写提交。
实际上,我想将数据从一个表复制到一个临时表。 但数据未插入并给出 ORA-01555: 快照太旧: 名称为“”的回滚段号太小错误。
请给我一个解决方案。
【问题讨论】:
为什么要将数据复制到临时表中?多少数据?您目前的具体情况如何? 【参考方案1】:ORA-01555:快照太旧:回滚段编号 9,名称为“SYSSMU 9*
解决方案:
步骤 :1) 检查 undo_retention 参数的大小。 如果是 900,则通过第 3 步增加到 3600。
第二步:SQL>显示参数undo_retention;
名称类型值
undo_retention 整数 900
步骤 3 :SQL> ALTER SYSTEM SET UNDO_RETENTION = 3600;
系统已更改。
将 Undo Table 空间增加到 Auto Extended on。
然后再试一次。
【讨论】:
【参考方案2】:将数据从一个表复制到另一个表的最简单方法是创建新表,如下所示:
create table table2 as select * from table1;
【讨论】:
【参考方案3】:从操作开始到发生Oracle错误需要多长时间?在我见过的情况下,时间可以用小时来衡量,这很好地表明工作应该被分割成块,每个块之后都提交。如果时间很短,您可能只是磁盘空间不足或您的 Oracle 实例配置错误。
【讨论】:
【参考方案4】:当 SQL 运行时间过长时,通常会收到“ORA-01555:快照太旧:带有名称的回滚段号”。这是因为读取器为一致读取所需的回滚记录被其他写入器覆盖。如果您分享您的代码 sn-p 将会很有帮助。
【讨论】:
以上是关于ORA-01555: 快照太旧: 名为 "" 的回滚段号太小的主要内容,如果未能解决你的问题,请参考以下文章
Oracle数据库 ORA-01555快照过旧是怎么回事?怎么解决?