Oracle解决Ora-01653无法扩展表空间
问题说明:
当我们往Oracle数据库中导入大量数据的时候,当导入即将完成的时候,就会出现问题:Ora-01653 : unable to extend table。的错误!
问题解决:
出现这种表空间不足的问题一般有两种情况:
1、表空间确实不够用了,已经达到了自动扩展的存储空间。
2、表空间的自动扩展功能没有开,需要开启自动扩展存储空间。
具体解决方法如下:
1、查看表空间情况脚本。
select
Upper(f.tablespace_name) "表空间名",d.tot_grootte_mb "表空间大小(M)",d.tot_grootte_mb - f.total_bytes "已使用空间(M)",
to_char(round((d.tot_grootte_mb - f.total_bytes) /d.tot_grootte_mb * 100, 2),'990.99') || '%' "使用比",
f.total_bytes "空闲空间(M)",f.max_bytes "最大块(M)"
from (select tablespace_name,round(sum(bytes) / (1024 * 1024), 2) total_bytes,round(max(bytes) / (1024 * 1024), 2) max_bytes
from sys.dba_free_space
group by tablespace_name) f,
(select dd.tablespace_name, round(sum(dd.bytes) / (1024 * 1024), 2) tot_grootte_mb
from sys.dba_data_files dd
group by dd.tablespace_name) d
where d.tablespace_name = f.tablespace_name
order by f.tablespace_name;
2、查看表空间是否开启了自动扩展存储空间的功能。
其中AUTOEXTENSIBLE字段表示自否开启的标识符!
SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files;
3、实际解决过程中的解决办法。
创建表空间之后我们就会使用新的表空间,并设置允许自增操作,即可解决我们遇到的无法创建表空间的错误!
-- 创建表空间G:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP01.DBF
create tablespace MBDATA datafile 'D:\app\Administrator\oradata\orcl\TEMP02.dbf' size 8G reuse autoextend on next 50M maxsize unlimited;