ORA-01555 snapshot too old: rollback segment number string with name "string" too smallCause: Rollback records needed by a reader for consistent read are overwritten by other writers.Action: If in Automatic Undo Management mode, increase the setting of UNDO_RETENTION. Otherwise, use larger rollback segments.如果是自动管理模式,增长UNDO_RETENTION的值,否则,使用大的回滚段。

解决方案 »

  1.   

    增大回棍段,增多回滚段;http://www.itpub.net/search.php?s=&action=showresults&searchid=147837&sortby=lastpost&sortorder=descending
      

  2.   

    SQL> ALTER SYSTEM SET UNDO_MANAGEMENT=AUTO;ALTER SYSTEM SET UNDO_MANAGEMENT=AUTOORA-02095: 无法修改制定的初始化参数
    我怎么查看UNDO_MANAGEMENT现在的状态?我执行了:
    ALTER SYSTEM SET UNDO_RETENTION=86400 
    还是出现同样的错误!
      

  3.   

    我用的是9i,另外,我是做了Exp操作,不是查询和dml操作,会不会问题不一样?解决方案也不一样
      

  4.   

    无法修改制定的初始化参数
    在%oracle_home%\admin\[sid]\pfile下的init.ora文件里修改,一般默认是auto模式。
    UNDO_RETENTION也是在init.ora里修改。
      

  5.   

    exp direct=y(不使用回滚段)
      

  6.   

    init.ora里的初始值:
    undo_management=AUTO
    undo_retention=10800
    undo_tablespace=UNDOTBS1
    应该没有问题,undo_retention一定要在配置文件里改?
      

  7.   

    不是一定
    SQL> alter system set undo_retention=10800;系统已更改。UNDO_RETENTION 
    Parameter type  Integer 
     
    Default value  900 
     
    Parameter class  Dynamic: ALTER SYSTEM 
     
    Range of values  0 to 232-1 (max value represented by 32 bits) 
     
    Oracle9i Real Application Clusters  Multiple instances must have the same value. 
     
     
    UNDO_RETENTION specifies (in seconds) the amount of committed undo information to retain in the database. You can use UNDO_RETENTION to satisfy queries that require old undo information to rollback changes to produce older images of data blocks. You can set the value at instance startup. 
    注意修改init.ora要重起数据库才能生效,shutdown,then startup
      

  8.   

    9i修改initSID.ora后重启不一定生效,db先使用的是spfile,不是pfile,如果你没有用spfile,重启后才生效
      

  9.   

    还是不行,郁闷:
    exp pm
    要导出的用户: (RETURN 以退出) >
    E:\dbbak>exp pm/pm@pmExport: Release 9.2.0.1.0 - Production on 星期四 3月 25 13:26:58 2004Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
    连接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.1.0 - Production
    输入数组提取缓冲区大小: 4096 > 导出文件: EXPDAT.DMP> 20040325.dmp(1)E(完整的数据库),(2)U(用户) 或 (3)T(表): (2)U >导出权限 (yes/no): yes >导出表数据 (yes/no): yes >压缩区 (yes/no): yes >已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集即将导出指定的用户...
    要导出的用户: (RETURN 以退出) > pm要导出的用户: (RETURN 以退出) >. 正在导出 pre-schema 过程对象和操作
    . 正在导出用户 PM 的外部函数库名称
    . 导出 PUBLIC 类型同义词
    . 导出私有类型同义词
    . 正在导出用户 PM 的对象类型定义
    即将导出 PM 的对象 ...
    . 正在导出数据库链接
    . 正在导出序号
    . 正在导出群集定义
    . 即将导出 PM 的表通过常规路径 ...
    . 正在导出 pre-schema 过程对象和操作
    . 正在导出用户 PM 的外部函数库名称
    . 导出 PUBLIC 类型同义词
    . 导出私有类型同义词
    . 正在导出用户 PM 的对象类型定义
    即将导出 PM 的对象 ...
    . 正在导出数据库链接
    . 正在导出序号
    . 正在导出群集定义
    . 即将导出 PM 的表通过常规路径 ...
    . . 正在导出表                        table1          0 行被导出
    . . 正在导出表                        table2          0 行被导出
    . . 正在导出表                        table3          0 行被导出
    . . 正在导出表                   AD_ATTACHMENT
    EXP-00056: 遇到 ORACLE 错误 1555
    ORA-01555: 快照过旧: 回退段号  在名称为 "" 过小
    ORA-22924: 快照太旧