ORA-01552: cannot use system rollback segment for...錯誤解決
故障現象:
今天本要做資料庫的不完全恢複,但是在準備環境的時候需要建立幾張表做為恢複用的基表。在建立表的時候
就報了如下一段錯誤:
13:56:03 SQL> create table wwl001 (id number,name varchar(12));
create table wwl001 (id number,name varchar(12))
*
ERROR at line 1:
ORA-01552: cannot use system rollback segment for non-system tablespace 'WWL';
!!!! 非系統表空間'WWL'不能使用系統復原段
問題原因:
我昨天做了由于磁盤損壞導緻資料庫災難的恢複,可能是由于恢複的時候參數檔案修改了,是以才導緻成復原段
變成了手動管理模式,我們可以看看如下步驟:
詳情:
1、建立表,非系統表空間不能使用復原段
2、檢視復原段管理方式,為手動管理
13:57:24 SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string UNDOTBS1
3、檢視復原段狀态
13:57:23 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
11 rows selected.
4、針對現象修改undo_management參數為auto即可。
14:08:06 SQL> alter system set undo_management=auto scope=spfile;
System altered.
14:17:51 SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
14:18:22 SQL> startup
ORACLE instance started.
Total System Global Area 100663296 bytes
Fixed Size 1217884 bytes
Variable Size 88083108 bytes
Database Buffers 8388608 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
5、檢視復原段狀态
14:18:55 SQL> select segment_name, tablespace_name, status from dba_rollback_segs;
_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
6、我們再執行剛才的建表語句,非常好,可以建立表了。
14:19:51 SQL> create table wwl001 (id number,name varchar(12));
Table created.