• 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
  • 相关阅读:
    CSS常用记录
    CSS字体图标使用方式
    CSS之多个div一行排列
    Mysql MVCC原理和幻读解决
    第8章 管理还原数据
    第20章 数据的移动
    oracle恢复删除的数据
    第11章 索引的管理与维护
    第10章 管理表
    第19章 归档模式下的数据库恢复
  • 原文地址:https://www.cnblogs.com/sddychj/p/9540810.html
Copyright © 2020-2023  润新知