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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM