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: 快照太旧: 名为 "" 的回滚段号太小的主要内容,如果未能解决你的问题,请参考以下文章

[SQL]Oracle ORA-01555快照过旧的错误

Oracle ORA-01555 快照过旧 说明

Oracle ORA-01555 快照过旧 说明

Oracle数据库 ORA-01555快照过旧是怎么回事?怎么解决?

oracle 11g rac ORA-01555 快照过旧报错处理

Oracle数据库 ORA