zoukankan      html  css  js  c++  java
  • ORACLE IMPDP导入报表数据已存在

    背景

          搞了这么多年oracle,不论是开发和运维,自认为是都了解了,和dba差的只是熟练的问题,因为毕竟不是天天搞它。不过突然听说数据泵导入的功能,大吃一惊,好像有印象,以为是落后的,一查,竟然是先进的,10g后推出的。惭愧。用了一把,简单总结下了。和imp还是有所不同的,当用户不同时,不是用的fromuser和touser,用的是remap_schema。

    导入语句

    impdp "xixi/123456@192.168.1.234:1521/orcl" dumpfile=backup.dmp directory=dump_dir 
    remap_schema=bobo:xixi remap_tablespace=TBS_BOBO:TBS_XIXI table_exists_action=SKIP TRANSFORM=segment_attributes:n

    知识点

    当使用IMPDP完成数据库导入时,如遇到表已存在时,Oracle提供给我们如下四种处理方式:

        a.忽略(SKIP,默认行为);
        b.在原有数据基础上继续增加(APPEND);
        c.先DROP表,然后创建表,最后完成数据插入(REPLACE);
        d.先TRUNCATE,再完成数据插入(TRUNCATE)。
     
        先用EXPDP生成一份dump文件
        sec@secDB /expdp$ expdp sec/sec directory=expdp_dir dumpfile=`date +"%Y%m%d%H%M%S"`_sec.dmp logfile=`date +"%Y%m%d%H%M%S"`_sec.log
     
        分别使用四中方式真实的感知一下具体效果
        用到的IMPDP语句统一汇总在这里,方便参考。
        SKIP:
        impdp system/sys directory=expdp_dir dumpfile=20100401102917_sec.dmp logfile=20100401102917_sec_impdp.log TABLE_EXISTS_ACTION=SKIP
     
        APPEND:
        impdp system/sys directory=expdp_dir dumpfile=20100401102917_sec.dmp logfile=20100401102917_sec_impdp.log TABLE_EXISTS_ACTION=APPEND
     
        REPLACE:
        impdp system/sys directory=expdp_dir dumpfile=20100401102917_sec.dmp logfile=20100401102917_sec_impdp.log TABLE_EXISTS_ACTION=REPLACE
     
        TRUNCATE:
        impdp system/sys directory=expdp_dir dumpfile=20100401102917_sec.dmp logfile=20100401102917_sec_impdp.log TABLE_EXISTS_ACTION=TRUNCATE
  • 相关阅读:
    MD5工具类
    新搭建mysql容易出现问题
    docker自动化部署
    k8s入门案例
    docker单一部署jenkins
    Sentinel 学习-简介
    mysql innerjoin,leftjoin,group by,having
    批量更新 分割list 多线程处理
    redis 3.0+ cluser 集群搭建
    ELK 和 Logstach
  • 原文地址:https://www.cnblogs.com/sddychj/p/9540810.html
Copyright © 2011-2022 走看看