亲测有效,window下,oracle导入很大的dmp文件到其他数据库(传统导入与数据泵方式)

此次dmp大小大约为20G,导入到自己创建的表空间

如果导出数据库的表空间是AA,那么再导入的数据库得创建一个同名的AA表空间并且用户名字也得一致,或者导入后用别人导出的那个用户名

E:\app\***\oradata\orcl,是本机数据库的安装目录


1://创建表空间,在sql命令窗口下
create tablespace "AA"
datafile 'E:\app\***\oradata\orcl\AA.dbf' size 10000M
default storage (initial 100M
Next 100M
minextents 1 
maxextents unlimited
pctincrease 0); 
2://如果报错ORA-01658无法为表空间中的段创建INITIAL区,oracle最大表空间好像是20G,如大于这个值,可以通过添加以下文件增加数据大小,可以添加多个
ALTER TABLESPACE AA ADD DATAFILE 'E:\app\***\oradata\orcl\AA2.DBF' SIZE 10000M;
ALTER TABLESPACE AA ADD DATAFILE 'E:\app\***\oradata\orcl\AA3.DBF' SIZE 10000M;
3://创建用户名和密码,分配表空间
create user test identified by 123456 default tablespace AA temporary tablespace temp;
4://授权test,千万别手残加单引号'test'  加了不报错但是登录不上提示用户名密码错误
grant connect,resource,dba to test;
5://导入dmp到自己创建的表空间,在第一次cmd进来的用户窗口下
imp test/123456@orcl file=F:\gz\***\***.dmp full=y

--------------------------------------------------------------------------------------------

删除表空间语句,会把AA,AA1,AA2一起删除
drop tablespace "AA" including contents and datafiles; 
 

数据泵的方式“

如果用数据泵导入:首先文件是数据泵导出的才能用

 1、手动新建一个文件夹:比如:E:\DDD,把导出的dmp文件放在这个文件夹下

2、数据库管理员登录sqlplus,创建数据导出目录expnc_dir为目录名,'E:\DDD'为数据库实际目录,命令如下: 

create directory expnc_dir as 'E:\DDD\';
3、为oracle用户授予访问数据目录的权限,命令如下:

Grant read,write on directory expnc_dir to test;
4、退出数据库命令窗口,打开cmd命令窗口执行数据泵入命令,实测用下面的这句话就行。

expdp test/test@ORCL4 directory=expnc_dir dumpfile=dmp文件名.dmp

注意一定后面不要加;分号  否则会报错

亲测有效,window下,oracle导入很大的dmp文件到其他数据库(传统导入与数据泵方式)_第1张图片
 

你可能感兴趣的:(oracle)