ORA-01552: 非系統表空間

jackson198574發表於2014-03-18
  

 
  客戶告知,在登入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!

已建議管理員立刻手動發起全庫備份,密切觀察資料庫空間和日誌狀態。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20802110/viewspace-1124131/,如需轉載,請註明出處,否則將追究法律責任。

相關文章