oracle导出导入工具expdp/impdp

expdp使用说明
一,前提,跟exp不同,需要使用目录
 -- 创建目录
 create directory dump_dir as 'c:/bak';
 -- 查询目录
 select * from dba_directories;
 -- 授权目录读写权限给别的用户
 grant read,write on directory dump_dir to user1;
二,常用操作
expdp导出
1)导出表
expdp  system/xxx tables=tab1 dumpfile=tab1.dmp DIRECTORY=dump_dir;
2)并发导出parallel,指定job名
expdp system/xxx DIRECTORY=dump_dir dumpfile=bak1.dmp parallel=4 job_name=job1
3)全表
expdp system/xxx  TABLES=tab1,tab2 dumpfile=expdp.dmp DIRECTORY=dump_dir;
4)导出表,并指定表中的内容
expdp system/xxx  DIRECTORY=dump_dir dumpfile=expdp.dmp Tables=tab1 query='WHERE id<100';
5)导出表空间
expdp system/xxx DIRECTORY=dump_dir DUMPFILE=tbs.dmp TABLESPACES=temp,example;
6)导出全库
expdp system/xxx DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;

impdp导入
1) 全用户导入
impdp use1/xxx DIRECTORY=dump_dir DUMPFILE=expdp.dmp SCHEMAS=user1;
2) 用户对象迁移
impdp system/manager DIRECTORY=dump_dir DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=user1:user2;
    (user1为原用户,user2为目标用户,一般情况如果需要改表空间附带使用remap_tablespace=A:B)
3) 导入指定表空间
impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=example;
4) 全库导入
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5) 表已存在的处理
impdp system/manager DIRECTORY=dump_dir DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION=append;
6) 表空间迁移
impdp system/manager directory=dump_dir dumpfile=remap_tablespace.dmp logfile=remap_tablespace.log remap_tablespace=A:B
    (A为原表空间名,B为指定的目标表空间名,如果有多个表空间使用remap_tablespace='(tbs1:tbs3,tbs2:tbs4)' )
说明:如果是用as sysdba,需要转义下特殊字符
expdp \"/ as sysdba\" job_name=myjob
impdp \'\/ as sysdba\'

三,一些参数说明
1,ATTACH
当我们使用ctrl+C 退出交互式命令时,可心使用attach参数重新进入到交互模式
ATTACH=[schema_name.]job_name,然后可以执行一些交互命令,比如status,kill_job,exit等
2, JOB_NAME
指定任务名,如果不指定的话,系统会默认自动命名:SYS_EXPORT_mode_nn
查看有哪些expdp/impdp job,可以通过dba_datapump_jobs查看,通过v$session.action也可以查看到
3,CONTENT
限制导出的内容,包括三个级别:全部/数据/元数据(结构),如下:
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
4,DIRECTORY
DIRECTORY=dump_dir,是导出文件的存储位置
5,DUMPFILE
 此参数用户命名导出文件,默认是 expdat.dmp
6,EXCLUDE
    此参数用于排除不需要导出的内容,如我们进行全库导出,但是不需要导出用户scott,此时需要在exclude后先指定排除类型为schema,再指定具体的schema。具体使用方法见include参数
EXCLUDE=object_type[:name_clause] [,object_type[:name_clause] ]
Object_type对象类型,如:table,view,procedure,schema等,name_clause指定名称的语句,如果不具体指定是哪个对象,则此类所有对象都不导出
EXCLUDE与INCLUDE的用法是一样的
例如EXCLUDE=VIEW或者EXCLUDE=STATISTICS,TABLE:"IN('T1','T2')"
7,FILESIZE
    用于指定单个导出的数据文件的最大值,与%U一起使用
FILESIZE=integer[B | K | M | G]
   Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=DMP%U.dmp FILESIZE=20G
8,NETWORK_LINK
      此参数只有在导入(impdp)时使用,可通过本地数据库里的db_link连接到其他数据库A,将数据库A的数据直接导入到本地数据库。中间可节省导出数据文件,传送数据文件的过程
    impdp system/xxx schemas=u_1 directory=dmp_dir network_link=d1 remap_schema=u_1:u_2 logfile=xxx.log parallel=8

   (服务器A上的用户u_1到服务器的B上的u_2,其中d1是服务器B上创建的链接服务器A的dblink,如果报错没有权限,

    则赋予EXP_FULL_DATABASE,IMP_FULL_DATABASE相应权限即可,查看dblink使用dba_objects 过滤object_type为DATABASE LINK或者dba_db_links)

9, PARALLEL

      指定导出/导入时使用多少个并发,默认是1

      注意这里的并行导出生效有个条件,导出的dump文件如果是一个并不具备使用并行条件,可以配置每个导出文件大小,设置并行度,比如:

      dumpfile=dp_20170101_%U.dmp filesize=200M parallel=4 来执行,同样的情形适用于impdp

10,PARFILE
      参数文件,比如文件:
SCHEMAS=zehb_new
DIRECTORY=expdpdir
DUMPFILE=baoa_zehb_new.dmp
LOGFILE=baoa.log
再倒入的时候执行imp xxx/xxx parfile=xxx.par即可
11,QUERY
       此参数指定在导入导出时的限制条件,和SQL语句中的 "where" 语句是一样儿一样儿滴
QUERY=[schema.] [table_name:] query_clause
比如: tables=a query="where sex='F' and id=1"
12,SCHEMAS
      指定导出/导入哪个用户
13,REMAP_SCHEMA
     只在导入时使用
      作用: 把用户A的对象导入到用户B
      格式: remap_schema=schema1: schema2
14,TABLES
       作用:指定导出哪些表。
       格式:TABLES=[schema.]table_name[:partition_name][,[schema.]table_name[:partition_name]]
15,TABLESPACES
      指定导出/导入哪个表空间
16,REMAP_TABLESPACE
      作用: 只有在导入时使用,用于进行数据的表空间迁移
17,TRANSPORT_FULL_CHECK
     检查需要进行传输的表空间与其他不需要传输的表空间之间的信赖关系,默认为N。当设置为“Y”时,会对表空间之间的信赖关系进行检查
18,TRANSPORT_TABLESPACES
      作用: 列出需要进行数据传输的表空间
19,VERSION
       此参数主要在跨版本之间进行导数据时使用,更具体一点,是在从高版本数据库导入到低版本数据库时使用,从低版本导入到高版本,这个参数是不可用的。默认值是:compatible。此参数基本在导出时使用,导入时基本不可用。
VERSION={COMPATIBLE | LATEST | version_string}
COMPATIBLE: 以参数compatible的值为准,可以通过show parameter 查看compatible参数的值
LATEST            : 以数据库版本为准
version_string   : 指定版本。如: version=10.2.0.1
20,table_exists_action
      此参数只在导入时使用
      作用:导入时,假如目标库中已存在对应的表,对于这种情况,提供三种不同的处理方式:append,truncate,skip,replace

      格式: table_exists_action=[append | replace| skip |truncate]

      skip:代表表对象存在时,跳过该表;append:向现有表添加数据;truncate:先truncate当前表,再插入记录;replace:删除并重建表对象再插入数据

21 transform

要应用于适用对象的元数据转换。
有效的关键字为: DISABLE_ARCHIVE_LOGGING, LOB_STORAGE, OID, PCTSPACE,
SEGMENT_ATTRIBUTES, STORAGE 和 TABLE_COMPRESSION_CLAUSE。

 适用于导入,其中SEGMENT_ATTRIB参数指定是否导入段的物理属性,存储属性,表空间,logging等属性,默认为y,如果设置为n则代表导入默认行为,比如表空间就导入目标数据库的默认表空间;而OID,在导入遇到问题时候设置为n,用于克隆

ORA-39083: Object type TYPE failed to create with error:
ORA-02304: invalid object identifier literal

官网说明:

 

OID - If the value is specified as n, the assignment of the exported OID during the
creation of object tables and types is inhibited. Instead, a new OID is assigned.
This can be useful for cloning schemas, but does not affect referenced objects. The
default value is y


22 TRACE

启用跟踪功能,只需要在DataPump(expdp)或DataPump(impdp)的时候添加一个trace参数,对其指定一个7位数的十六进制。前三个数字启用跟踪特定的数据泵组件,而通常最后四位数字为:0300。任何前导零的可以省略,跟踪参数指定的值是不区分大小写的。

 

TRACE = 04A0300 或者 TRACE=4a0300

 

 

注:

parfile示例

 

SCHEMAS=loge
JOBNAME=MYJOB1
DIRECTORY=expdpdir
DUMPFILE=dump1.dmp
LOGFILE=dump1.log
EXCLUDE=STATISTICS,TABLE:"IN('TAB1','TAB2')"

/*
TABLES=loge.tab1,loge.tab2 or (loge.tab1,loge.tab2)  
QUERY=( 
loge.tab1:"where id=2",  
loge.tab2:"where name='CHINA'"  
) 
如果是写在命令行上用tables=tab1,query='emp::"where id=2"'
*/ 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝闻道-夕死可矣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值