出现ORA-01552: cannot use system rollback segment



问题:
1 SQL> insert into test values(3);
insert into test values(3)
            *
ERROR at line 1:
ORA-01552: cannot use system rollback segment for non-system tablespace 'USERS'



2  看alert_ORCL.log日志:
Thu May  8 19:16:04 2008
db_recovery_file_dest_size of 2048 MB is 0.00% used. This is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or ASM diskgroup.
Thu May  8 19:16:05 2008
Successfully onlined Undo Tablespace 1.
Thu May  8 19:16:05 2008
SMON: enabling tx recovery
Thu May  8 19:16:05 2008
*********************************************************************
WARNING: The following temporary tablespaces contain no files.
         This condition can occur when a backup controlfile has
         been restored.  It may be necessary to add files to these
         tablespaces.  That can be done using the SQL statement:

         ALTER TABLESPACE ADD TEMPFILE

         Alternatively, if these temporary tablespaces are no longer
         needed, then they can be dropped.
           Empty temporary tablespace: TEMP
*********************************************************************
Database Characterset is WE8ISO8859P1
replication_dependency_tracking turned off (no async multimaster replication found)
Starting background process QMNC
QMNC started with pid=21, OS id=8211
Thu May  8 19:16:11 2008
Completed: ALTER DATABASE OPEN




3 查回滚段表
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

11 rows selected.

4 SQL> select us#,name,status$ from undo$;

       US# NAME                              STATUS$
---------- ------------------------------ ----------
         0 SYSTEM                                  3
         1 _SYSSMU1$                               5
         2 _SYSSMU2$                               5
         3 _SYSSMU3$                               5
         4 _SYSSMU4$                               5
         5 _SYSSMU5$                               5
         6 _SYSSMU6$                               5
         7 _SYSSMU7$                               5
         8 _SYSSMU8$                               5
         9 _SYSSMU9$                               5
        10 _SYSSMU10$                              5

       US# NAME                              STATUS$
---------- ------------------------------ ----------
        11 _SYSSMU11$                              1
        12 _SYSSMU12$                              1
        13 _SYSSMU13$                              1
        14 _SYSSMU14$                              1
        15 _SYSSMU15$                              1
        16 _SYSSMU16$                              1
        17 _SYSSMU17$                              1
        18 _SYSSMU18$                              1
        19 _SYSSMU19$                              1
        20 _SYSSMU20$                              1

21 rows selected.

状态为5的有10行,对应上面的dba_rollback_segs表
但是这里状态是需要恢复


查看数据库启动是用spfile还是pfile文件
SQL> show parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string
如果为空则是从pfile启动,有值就是从spfile启动的!

6   编辑pfile文件:/u01/app/oracle/product/10.2.0/db_1/dbs/initORCL.ora

将*.undo_tablespace='UNDOTBS1'改成*.undo_tablespace='UNDOTBS2'

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  268435456 bytes
Fixed Size                  1218868 bytes
Variable Size              88082124 bytes
Database Buffers          171966464 bytes
Redo Buffers                7168000 bytes
Database mounted.
Database opened.
SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS2



7   然后把整个系统重启一下就没出现问题了。





默认表空间没有空间了,可以切换回滚空间untotbs2为系统的默认表空间。(也可以增加默认表空间untotbs1的大小。)

 

 

2008/05/09

1 目标数据库控制文件在某个极大日期范围内存储值得保留的备份与归档日志信息,由

control_file_record_keep_time参数确定。默认为7天,即在第8天时,最陈旧的信息(从第一天开始

)可以被覆盖。

SQL> show parameter control_file_record_keep_time

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time        integer     7






来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12778571/viewspace-263382/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12778571/viewspace-263382/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值