ORACLE之数据泵导出

ORACLE之数据泵导出

  • 导出数据泵(expdp):执行导出时,expdp先创建MT表,并将对象的信息插入MT表,开始执行实际的导出任务,当所有的对象都导出以后,将MT表也一起导出到转储文件中,等到导出任务完成或通过命令删除导出任务以后,将MT表也一并删除,如果是任务异常的终止,则MT表会保留。
  • 导入数据泵(impdp):执行导入时,impdp先将MT表从转储文件读出,并写入到目标数据库中,然后读取MT表中所有的对象信息,根据读取出来的对象名称,将这些对象从转储文件中提取出来,并插入到目标数据库中。
  • 基本操作:

    //查看导出数据泵与导入数据泵参数
    $expdp help=y
    $impdp help=y

导出前提设置:

//创建临时目录
SQL> create directory linshi_dir as '/u01/app/oracle/expdp';

Directory created.

//授权给所有用户都可以读写
SQL> grant read, write on directory temp_dir to public;

Grant succeeded.

//查看当前临时目录情况
SQL> select * from all_directories;

在这里插入图片描述

各种导出方式:

  1. 导出全库:

    expdp system/oracle directory=temp_dir full=y dumpfile=expdp_full%U.dmp logfile=expdp_full.log parallel=3 job_name=expdp_full_job
    //采用了4个并行进程导出全库

  2. 导出某个或某几个用户:

    expdp system/oracle directory=temp_dir dumpfile=expdp_schemas_%U.dmp schemas=scott, hr job_name=expdp_schemas_job

  3. 导出某个指定的表:

    expdp hr/hr directory=temp_dir dumpfile=expdp_tables_%U.dmp tables=emp, dept job_name=expdp_tables_job job_name=expdp_tables_job

  • %U表示:生成的文件名扩展为双字符,固定宽度,从01开始的单调递增的整数。
  • parallel = 2:指定并行度为2,%U最终生成两个文件,文件数和并行度一致。
  1. 按查询条件导(只能使用参数文件方式)

    expdp parfile=’/u01/app/oracle/expdp/expdp_query.par’

    cat> /u01/app/oracle/expdp/expdp_query.par <<!
    userid=hr/hr
    directory=temp_dir
    dumpfile=expdp_query.dmp
    tables=emp, dept
    query=emp:“where to_char(hire_date, ‘yyyy’)=‘2006’”, dept:“where department_id=50”
    !

  • 评估数据量:

expdp system/oracle directory=temp_dir schemas=hr estimate_only=y

  • 查看当前作业

    select owner_name, job_name, operation, job_mode, state from dba_datapump_jobs;
    在这里插入图片描述

导出重要参数

ESTIMATE_ONLY 导出数据量评估,不真正导出。
VERSION 导出版本,用于跨版本数据迁移时使用,
其值可以为COMPATIBLE,或具体版本号,如11.2.0、11.2、10.2.1、10.2等等。
从11g的数据导入到10g中,expdp语句要加10g的版本号: version=10 或 用10g客户端的plsql导表工具
COMPRESSION 开启压缩,其值有:ALL, DATA_ONLY, [METADATA_ONLY] and NONE
EXCLUDE 不导出符合条件的对象,该参数只能在参数文件中使用。
exclude=table:" =‘T1’ "
exclude=table:" like ‘EMPLOYEES%’ "
exclude=table:" in (‘EMPLOYEES’,‘DEPARTMENTS’)"
exclude=schema:"=‘HR’"
INCLUDE 导出符合条件的对象

导入重要参数

CONTENT 指定要加载的内容,其值为:[ALL],DATA_ONLY,METADATA_ONLY.
[ALL] 表示默认为ALL。
TABLE_EXISTS_ACTION
当表存在时,impdp导入的方式:
APPEND 追加
REPLACE 删除表后新建
TRUNCATE 清空表后插入数据
REMAP_TABLESPACE 修改对象所在的表空间,其值为:tbs1:tbs2,tbs3:tbs4 …
REMAP_SCHEMA 修改对象所属的用户,其值为:user1:user2,user3:user4 …
REMAP_TABLE 修改对象名称
QUERY 按查询条件导入,QUERY=employees:“WHERE department_id > 10”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值