原来程序都是好使的。
今天运行程序时,发现程序报错,单步执行时出现:“
ORA-01552: 非系统表空间 'USERS' 不能使用系统回退段”
请问这个问题如何解决啊?
先谢谢了!

解决方案 »

  1.   

    http://www.diybl.com/course/7_databases/oracle/Oracleshl/2008717/133560.html
      

  2.   

    楼主什么版本ORACLE啊?最好使用自动还原表空间管理 以前版本都是手工分配回滚段的
      

  3.   

    我用的是10G 在查询回滚段是这样的:
    SQL> select segment_name,status from dba_rollback_segs;SEGMENT_NAME                   STATUS
    ------------------------------ ----------------
    SYSTEM                         ONLINE
    _SYSSMU1$                      NEEDS RECOVERY
    _SYSSMU2$                      NEEDS RECOVERY
    _SYSSMU3$                      NEEDS RECOVERY
    _SYSSMU4$                      NEEDS RECOVERY
    _SYSSMU5$                      NEEDS RECOVERY
    _SYSSMU6$                      NEEDS RECOVERY
    _SYSSMU7$                      NEEDS RECOVERY
    _SYSSMU8$                      NEEDS RECOVERY
    _SYSSMU9$                      NEEDS RECOVERY
    _SYSSMU10$                     NEEDS RECOVERY
      

  4.   

    正常 我的也这样
    你在SQL*PLUS中输入show parameter auto
    看什么结果
    SQL> select segment_name,status from dba_rollback_segs;SEGMENT_NAME                   STATUS
    ------------------------------ ----------------
    SYSTEM                         ONLINE
    _SYSSMU1$                      ONLINE
    _SYSSMU2$                      ONLINE
    _SYSSMU3$                      ONLINE
    _SYSSMU4$                      ONLINE
    _SYSSMU5$                      ONLINE
    _SYSSMU6$                      ONLINE
    _SYSSMU7$                      ONLINE
    _SYSSMU8$                      ONLINE
    _SYSSMU9$                      ONLINE
    _SYSSMU10$                     ONLINE11 rows selected.SQL> show parameter undoNAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    undo_management                      string      AUTO
    undo_retention                       integer     900
    undo_tablespace                      string      UNDOTBS1
      

  5.   

    运行 show parameter auto 结果是:
    SQL> show parameter auto
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------
    hs_autoregister                      boolean     TRUE
    parallel_automatic_tuning            boolean     FALSE每次当更新,插入数据库时都会出现:
    ORA-01552: 非系统表空间 'USERS' 不能使用系统回退段” 初学ORACLE请问大家如何解决啊?
      

  6.   

    SQL> show parameter undoNAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------
    undo_management                      string      AUTO
    undo_retention                       integer     900
    undo_tablespace                      string      UNDOTBS1
      

  7.   

    LZ是什么版本的数据库啊?
    重建UNDO 应该能解决这个问题
    第一:使用自动管理回退段的方式 
    执行了以下命令,建立了一个UNDO表空间 
    create undo tablespace UNDO_TBS1
    datafile 'C:\oracle\oradata\ora9i\undotbs01.dbf'
    size 200m 
      
    然后修改初始化参数文件: 
    在创建表空间后,先关闭数据库,再把UNDO_TABLESAPCE参数添加到初始化参数文件里。这几项是这样的
    undo_management='AUTO'
    undo_tablespace='UNDO_TBS1' 
    重启数据库
    文章出处:DIY部落(http://www.diybl.com/course/7_databases/oracle/Oracleshl/2008717/133560.html)
      

  8.   

    这个帖子写的解决法官法比较详细,LZ可以看下
    http://blog.csdn.net/randyamor/archive/2008/09/25/2978624.aspx
      

  9.   

    看样子是还原表空间发生故障了
    重建一个吧
    再把undo_tablespace切换到新建的还原表空间