ORA-01552 非系统表空间不能使用系统回滚段处理

本文介绍了解决ORA-01552错误的过程,该错误出现在尝试创建表时,原因是非系统表空间无法使用系统回滚段。通过调整参数undo_management为自动管理并重启数据库,成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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、创建表,非系统表空间不能使用回滚段
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';

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;

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

11 rows selected.

6、我们再执行刚才的建表语句,非常好,可以创建表了。
14:19:51 SQL> create table wwl001 (id number,name varchar(12));

Table created.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值