Oracle 导入数据报600错误

之前导入一个大容量dmp数据文件,报一个600错误,咨询网上的解决方法,按上面的处理一圈也没有整好,最后咨询组里一个大神,出现此错误 思路是,单个数据文件大小最大为32G,分析数据库后解决如下:

错误情况:Oracle 导入数据报600错误

解决方法:在保证我们导入sql无误的情况下,检查当前用户所在表空间:

select username,default_tablespace from user_users;

Oracle 导入数据报600错误

可以看到,我们当前使用的是users表空间,下面检查当前使用表空间的使用率:

select total.tablespace_name,
      round(total.MB, 2) as Total_MB,
      round(total.MB - free.MB, 2) as Used_MB,
      round((1 - free.MB / total.MB) * 100, 2) as Used_Pct
  from (select tablespace_name, sum(bytes) / 1024 / 1024 as MB
          from dba_free_space
        group by tablespace_name) free,
      (select tablespace_name, sum(bytes) / 1024 / 1024 as MB
          from dba_data_files
        group by tablespace_name) total
 where free.tablespace_name = total.tablespace_name;

在未给表空间加dbf文件前,表空间使用率接近99%,自此分析出为什么Oracle报600错误了,数据文件爆满溢出,导入数据后会被回滚的,解决方式就是加dbf数据文件.

 alter tablespace USERS add datafile 'H:\APP\16489\ORADATA\ORCL\USERS03.DBF' size 3G autoextend on;

 了解到我导入的数据文件较大,直接加了两个30G的dbf文件,以备后患
 alter tablespace USERS add datafile 'H:\APP\16489\ORADATA\ORCL\USERS05.DBF' size 30G autoextend on;

需要注意的是新增的dbf文件是会直接占用硬盘内存的,看大家需求创建新DBF,不要创建一个过大而又用不完的.

Oracle 导入数据报600错误

增加dbf文件后表空间足够装下我们的数据了,执行导入,无错误,导入成功。

Oracle 导入数据报600错误

相关推荐