Oracle学习笔记—Oracle数据库中表空间不足。
今天对Oracle操作的时候遇到这个问题:
[Err] ORA-01658: unable to create INITIAL extent for segment in tablespace SYSTEM
解决办法:
报错的原因是:导入的表的initial extent 太大,表空间剩余空间不足以分配。
解决方法:
第一种:增大表空间中的数据文件。
1.以sysdba身份执行这个SQL,查看表空间中的数据文件:
【注】:sysdba不需要密码
select file_name from dba_data_files where tablespace_name = MY_DATA’
2.同样以sysdba身份执行alter database datafile ‘xx’ resize 1000M
这里的xx为上面SQL查出来的file_name,resize的大小自己视情况定。
第二种:也可以在表空间中新增加数据文件。
以sysdba身份执行
alter tablespace MISPRO_DATA add datafile ‘xx/xx/xx.dbf’ size 10M autoextend on
next10M maxsize 500M
这里的数据文件路径和大小同样自己视情况定。
第三种:把表空间中的数据文件设置为自动增长(如果你的表空间数据文件已经设置为自动增长,并且已经达到或接近了maxsize,也可以增大maxsize)。以sysdba身份执行:
alter database datafile ‘xx’ autoextend on next 10M maxsize 1000M
如果数据文件已经是自动增长的话,可以选择第二种方法或者执行下面的命令来增大数据文件的maxsize
alter database datafile ‘xx’ maxsize 1000M