oracle导出导入工具expdp/impdp

来源:互联网 发布:千牛工作台for mac 编辑:程序博客网 时间:2024/05/29 16:11
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
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]

0 0
原创粉丝点击