如何使用navicat导入上百G的.dmp文件
如何使用navicat导入上百G的.dmp文件


VIP文章
Good_omen

已于 2022-11-10 15:49:57 修改

阅读量2.8k
 收藏 2

点赞数 2
分类专栏: oracle 文章标签: oracle
版权
如何使用navicat导入上百G的.dmp文件
背景:my sister 给了我几个.dmp文件,当时想都没想就直接用navicat给她导入数据。后来发现,当我们没有日志文件时,处理.dmp文件还是有点麻烦的,因为你并不知道数据库名称、表空间名称、甚至表的大小。通过navicat的数据泵执行导入.dmp文件出现很多错误提示后,才慢慢摸清存储数据所需要的各种结构,但是随之而来的又是另外一个问题。当我发现某个.dmp的文件大小居然有上百G时,我震惊了。就是说我妹妹一直在给我挖坑,或者说她老师就一直给她挖坑,让她一个非计算机专业的学生处理各种数据文件,而且难度还不低,以至于她摆烂了两个月才把自己的研究数据弄出来。

正文开始:

导入数据之前要创建同名的表空间和数据库,本例中数据库名ODS_GSTX,表空间GSTXSJ。但是如果不清楚数据库名和表空间,可以提前用数据泵导入.dmp文件并执行,报错会提示数据库名称和表空间。




其次因为数据过大,创建表空间一定要定义bigfile表空间。

--创建数据库ODS_GSTX
create user ODS_GSTX identified by qwe123456# DEFAULT TABLESPACE GSTXSJ;

--如果使用ODS_GSTX 登录navicat,操作数据泵需要管理员权限,登录navicat时一定要开启管理员权限(具体操作如下图)
grant connect,resource,sysdba to ODS_GSTX;
1
2
3
4
5


--创建表空间GSTXSJ
--一定要使用BIGFILE关键字 
CREATE BIGFILE tablespace GSTXSJ
logging  
datafile 'D:\Software\Oracle11g\MY_DATA\GSTXSJ.dbf' 
SIZE 5000M 
autoextend on  
next 50m maxsize UNLIMITED  
extent management local;

-- 通过该语句 可以查看表空间的 bigfile 属性是否为 YES
SELECT * FROM dba_tablespaces;
1
2
3
4
5
6
7
8
9
10
11
12
创建完毕后,可以直接使用navicat提供的数据泵导入.dmp文件了。因为数据量较大,文件执行的时间会长达几个小时。

使用cmd命令行的形式导入可能会快一点:

-- 依旧需要提前定义目录  home/oracle/sql 为存放.dmp数据文件地址
create or replace directory dump_dir as '/home/oracle/sql';
grant read,write on directory dump_dir to oracle;
-- impdp 导入命令 
-- ODS_GSTX/qwe123456#为 登录名和密码
-- 20220727ODSCKTX.DMP 为.dmp文件名称
impdp ODS_GSTX/qwe123456#@helowin directory=dump_dir dumpfile=20220727ODSCKTX.DMP

impdp oracle/qwe123456#@helowin directory=dump_dir dumpfile=20220727EXCHANGECKTX.DMP
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/Good_omen/article/details/127749746

渝公网安备 50011902000225号

渝ICP备18008233号-1