Oracle数据泵导入导出命令

首先在需要导入的库中建立新的表空间和用户以及数据存放目录,并赋予相关权限。
(此处以PL/SQL Developer工具创建,也可使用SQL PLUS命令创建。)

/*创建表空间*/
create tablespace BBZX1500805
 logging  
 datafile 'd:\app\xiaocc\oradata\orcl\bbzx_0805.dbf' /*数据文件、日志文件保存路径*/
 size 500m  
 autoextend on  
 next 50m maxsize unlimted   /*unlimted则为无限制(实际有)*/ 
 extent management local;

/*创建数据库用户*/
create user BBZX1500805
 identified by 1  /*密码*/
 default tablespace BBZX1500805   /*设置默认表空间*/
 temporary tablespace temp /*临时表空间*/
 profile DEFAULT;/*配置默认*/


 /*授权数据库连接,资源,管理员权限,创建视图,会话以及导入导出权限给用户*/
grant connect,resource,dba to BBZX1500805;
grant create view,create session to  BBZX1500805
grant exp_full_database,imp_full_database to BBZX1500805


/*创建或替换目录(数据泵导入导出目录)*/
create or replace directory  DPUMPDIR as  'F:\work\BBZXM';


 /*授权用户对目录的读写权限*/
grant read,write on directory DPUMPDIR to BBZXM;

其次,执行导入或导出命令即可。以下命令可复制到txt文本,完善对应属性名称,保存时修改txt后缀为bat,忽视提示,保存即可。双击执行(建议再另起一行加个pause;执行命令后暂停,避免突然闪退关闭的情况)

 /*导入*/
Impdp BBZXM/1@orcl  
directory=DPUMPDIR 
dumpfile=BBZXM.DMP 	
logfile=BBZXM_20180104.log 
remap_schema=BBZXM:BBZXM 
remap_tablespace=BBZXM:BBZXM 
transform=segment_attributes:n 
EXCLUDE=STATISTICS

【解释说明】
/*BBZXM/1@orcl(用户名/密码@地址(本地略)/数据库实例(orcl) ,如172.168.1.33/OPARA  服务器IP加数据库实例OPARA)
directory:资源目录(.dmp等文件,数据库建立了该目录,还需要在电脑对应的磁盘下建立相同的实际目录,存放.dmp数据文件)
dumpfile:文件名称
remap_schema=BBZXM:BBZXM(数据迁移从前者(导出库用户BBZXM)移到后者(导入库用户BBZXM))。
remap_tablespace=BBZXM:BBZXM (数据迁移从前者:导出表空间)复制到导入后者:导入表空间
transform=segment_attributes:n (此参数设置为segment_attributes:n,‘n’意指导入该对象的时候,不会指定表空间等属性,可避免一些导库报错出现。详情可另查官方文档)
EXCLUDE=STATISTICS(排除统计值,避免导库报错)*/


 /*导出*/
 expdp BBZXM/1@orcl 
 schemas=BBZXM 
 dumpfile=BBZXM.DMP 
 logfile=BBZXM.log  
 DIRECTORY=DMPDIR

 【解释说明】
/*schemas:同用户名
dumpfile:导出文件名
logfile:日志文件
DIRECTORY:导出目录(路径)
*/

注意: DIRECTORY别名DMPDIR

 create directory DMPDIR AS	'D:\GTJJ\GTJJ_local4.5_database\DMPDIR'

导出时,可能会提示“操作文件无效,无法打开日志等等”,是因为Directory没有创建或者创建的有误(即使数据库可以查到,也有可能创建时,文件格式不对导致路径无效,严格参照上述路径写法),还需要在D盘创建和路径相同的文件夹。
最后,如果数据导的有问题,查看问题,删掉以下内容,重新导。

--  如果导错了,以下命令  删掉 数据  重新调整导。
drop user BBZX1500805 cascade;
drop tablespace  BBZX1500805 including contents and datafiles;

若表空间不足,表空间扩容方式之一:增加物理存储文件(数据文件)

alter tablespace  BBZX1500805  add datafile 'D:\GTJJ\GTJJ_local4.5_database\DMPDIR\xxxx02.DBF''size 2000m  autoextend on  next 50m maxsize 30000m 

增加多个的话,就直接更改"xxxx02"为"xxxx03","xxxx04"等等.依次类推.重复执行上述语句.

【导入过程中遇到的问题】
【1】跳过从属对象类型XXXX失败,创建基本类型xxx失败
原因:导入新的目标用户会默认建立与源用户相同的OID(Oracle Internet Directory (OID) 是 Oracle 用来集中存储和管理网络服务名称的解决方案),如果源用户及目标用户不一致,会产生冲突。
解决办法:想改变目标用户,使用自己创建的用户时,可以设参数transform为transform=OID:N
【2】无法转换为环境字符集句柄
原因:导入的方式不对,要和导出模式一致。imp普通导入方式报此错,
解决办法:使用数据泵方式导入,impdp.

你可能感兴趣的:(oracle)