共计 1140 个字符,预计需要花费 3 分钟才能阅读完成。
之前导入一个大容量 dmp 数据文件,报一个 600 错误,咨询网上的解决方法,按上面的处理一圈也没有整好,最后咨询组里一个大神,出现此错误 思路是,单个数据文件大小最大为 32G,分析数据库后解决如下:
错误情况:
解决方法:在保证我们导入 sql 无误的情况下, 检查当前用户所在表空间:
select username,default_tablespace from user_users;
可以看到,我们当前使用的是 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, 不要创建一个过大而又用不完的.
增加 dbf 文件后表空间足够装下我们的数据了,执行导入,无错误,导入成功。
更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-09/147151.htm