【问题标题】:ORA-01555: snapshot too old: rollback segment number with name "" too smallORA-01555: 快照太旧: 名为 "" 的回滚段号太小
【发布时间】:2011-06-20 06:59:57
【问题描述】:

ORA-01555:快照太旧:名称为“”的回滚段号太小

当我调用过程之后,我正在编写提交。

实际上,我想将数据从一个表复制到一个临时表。 但数据未插入并给出 ORA-01555: 快照太旧: 名称为“”的回滚段号太小错误。

请给我一个解决方案。

【问题讨论】:

  • 为什么要将数据复制到临时表中?多少数据?您目前的具体情况如何?

标签: oracle10g


【解决方案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 将会很有帮助。

        【讨论】:

          猜你喜欢
          • 2020-07-05
          • 2010-12-13
          • 2015-06-17
          • 2016-02-13
          • 2012-08-11
          • 2015-07-27
          • 2021-07-09
          • 2017-01-22
          • 1970-01-01
          相关资源
          最近更新 更多