
客户告知,在登录Web应用的时候报错:ORA-01552: 非系统表空间 'USERS' 不能使用系统回退段。
系统管理员建议是将UNDO表空间替换掉:建新表空间,让其投入使用,然后删掉旧的UNDO表空间。
我觉得数据库的问题,操作需谨慎,先稳住各方的情绪,然后查看一下其数据库的设置,发现有如下问题:
SQL> show parameter undo;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string
数据库版本为10G,按说表空间是建议设置为自动管理。
继续收集信息:
查看其回滚段信息:
发现所有的segment均为offline的状态:
SQL> select segment_name, tablespace_name, status from dba_rollback_segs;
SEGMENT_NAME TABLESPACE_NAME STATUS
------------------------------ ------------------------------ ----------------
SYSTEM SYSTEM ONLINE
_SYSSMU1$ UNDOTBS1 OFFLINE
_SYSSMU2$ UNDOTBS1 OFFLINE
_SYSSMU3$ UNDOTBS1 OFFLINE
_SYSSMU4$ UNDOTBS1 OFFLINE
_SYSSMU5$ UNDOTBS1 OFFLINE
_SYSSMU6$ UNDOTBS1 OFFLINE
_SYSSMU7$ UNDOTBS1 OFFLINE
_SYSSMU8$ UNDOTBS1 OFFLINE
_SYSSMU9$ UNDOTBS1 OFFLINE
_SYSSMU10$ UNDOTBS1 OFFLINE
确定了一下,其数据库已经做过全备。
修改UNDO相关参数:
SQL> alter system set undo_tablespace=UNDOTBS1 scope=spfile;
SQL> alter system set undo_management=auto scope=spfile;
$ sqlplus / as sysdba
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.
Total System Global Area 188743680 bytes
Fixed Size 2082728 bytes
Variable Size 113248344 bytes
Database Buffers 67108864 bytes
Redo Buffers 6303744 bytes
Database mounted.
Database opened.
SQL> show parameter undo;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO ---------------------参数已生效,UNDO为自动管理。
undo_retention integer 900
undo_tablespace string UNDOTBS1 ----------------------已指定UNDO表空间名。
SQL>
查看回滚段状态:
SQL> select segment_name, tablespace_name, status from dba_rollback_segs;
SEGMENT_NAME TABLESPACE_NAME STATUS
------------------------------ ------------------------------ ----------------
SYSTEM SYSTEM ONLINE
_SYSSMU1$ UNDOTBS1 ONLINE
_SYSSMU2$ UNDOTBS1 ONLINE
_SYSSMU3$ UNDOTBS1 ONLINE
_SYSSMU4$ UNDOTBS1 ONLINE
_SYSSMU5$ UNDOTBS1 ONLINE
_SYSSMU6$ UNDOTBS1 ONLINE
_SYSSMU7$ UNDOTBS1 ONLINE
_SYSSMU8$ UNDOTBS1 ONLINE
_SYSSMU9$ UNDOTBS1 ONLINE
_SYSSMU10$ UNDOTBS1 ONLINE
登录到应用系统做测试业务,在系统中添加一条记录,然后删掉。并无报错。
OK!
已建议管理员立刻手动发起全库备份,密切观察数据库空间和日志状态。