使用impdp,expdp資料泵進入海量資料遷移

LG_227發表於2018-04-04

利用expdp,impdp進行海量資料匯出和匯入時,需要建立多個表空間進行協同, 而且需要表空間檔案能夠自動增長,在特殊情況下還需要臨時表空間TEMP的協同, 具體的使用請觀看下面的視訊,


上述視訊有個錯誤點(見下方),請及時修正一下,下載對應的指令碼已經修復

--建立目錄, 只是資料庫中有這條記錄,真實的物理資料夾需要自己新增

create directory EXPORT_DATA as 'F:\oracleapp\Administrator\admin\MyOracle\DIR_DP'       --錯誤

create directory DIR_DP as 'F:\oracleapp\Administrator\admin\MyOracle\DIR_DP'            --正確



視訊中的指令碼可以點選【下載例項】進行下載, 此指令碼在Windows和Linux下皆可以(適用於>=10g的oracle版本)

注意點:

1.  匯出檔案的大小可能比匯入檔案小很多, 例如: 匯出檔案500g, 但匯入後,實際資料檔案佔用600G, 這是因為匯出資料是不建立索引空間         的, 只標註相應的索引資訊, 但匯入時,會根據索引資訊建立索引檔案


2.  匯入時,及時使用提供的指令碼進行相關資料的觀察,以避免表空間檔案不足或者磁碟檔案不足引發的錯誤


3. IMP只適用於EXP匯出的檔案,不適用於EXPDP匯出檔案;IMPDP只適用於EXPDP匯出的檔案,而不適用於EXP匯出檔案


4.匯出資料

   1)按使用者導 

        expdp scott/tiger@orclschemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;

    2)並行程式parallel

        expdp scott/tiger@orcldirectory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3

    3)按表名導

        expdp scott/tiger@orclTABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;

    4)按查詢條件導

        expdp scott/tiger@orcldirectory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';

    5)按表空間導

        expdp system/managerDIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;

    6)導整個資料庫

        expdp system/managerDIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;


5. 匯入資料   

    1)導到指定使用者下

        impdp scott/tiger DIRECTORY=dpdata1DUMPFILE=expdp.dmp SCHEMAS=scott;

    2)改變表的owner

        impdp system/managerDIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.deptREMAP_SCHEMA=scott:system;

    3)匯入表空間

        impdp system/managerDIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;

    4)匯入資料庫

        impdb system/managerDIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;

    5)追加資料

        impdp system/managerDIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION



相關文章