数据库新建表时遇到报错:ORA-01658: 无法为表空间space中的段创建 INITIAL 区

或者 ORA-01658: unable to create INITIAL extent for segment in tablespace string

此报错为数据文件不足

首先,需要查看数据文件大小

使用system用户登录

SELECT tablespace_name, SUM(bytes) / 1024 / 1024
  FROM dba_data_files
 GROUP BY tablespace_name;

或者再操作系统文件目录查看大小

发现数据文件并没有到最大值32G

如果数据文件达到32G最大值,需要新增数据文件

ALTER TABLESPACE emp
ADD DATAFILE 
'D:\oracle\product\10.2.0\oradata\DOCARE\emp01.DBF'
SIZE 500M
AUTOEXTEND 
ON NEXT 20M 
MAXSIZE UNLIMITED; 

查看数据文件是否设置自增长(建表报错一般不是这问题)

SELECT t.TABLESPACE_NAME,t.AUTOEXTENSIBLE FROM DBA_DATA_FILES t 

如果AUTOEXTENSIBLE=‘YES’ 则数据文件为自增长

否则将数据文件修改为自增长

ALTER DATABASE DATAFILE 'D:\oracle\product\10.2.0\oradata\DOCARE\emp01.DBF" AUTOEXTEND ON NEXT 200M MAXSIZE UNLIMITED;

ALTER TABLESPACE emp AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

增加表空间大小

如果以上两项都没有问题

扩充表空间原有数据的大小

ALTER DATABASE DATAFILE 'D:\oracle\product\10.2.0\oradata\DOCARE\emp01.DBF' RESIZE 1024M; 

alter tablespace emp add datafile 'D:\oracle\product\10.2.0\oradata\DOCARE\emp01.DBF' size 1024M AUTOEXTEND on next 100m;

文章作者: zlinks
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZFS的成长之路
Oracle Oracle报错处理
喜欢就支持一下吧