資料泵IMPDP 匯入工具的使用

beatony發表於2011-07-29
資料泵IMPDP 匯入工具的使用
分類: Oracle 其它特性 381人閱讀 評論(0) 舉報

--=================================

--資料泵IMPDP 匯入工具的使用

--=================================

   

    資料的匯入匯出時資料庫經常處理的作業之一,Oracle 提供了IMPIMPDP以及SQL*Loader等工具來完成資料的匯入工作,其中IMP服務於早期的9i之前的版本,在10g及後續版本,Oracle 提供了資料泵高速匯入工具,本文主要介紹IMPDP的使用方法,關於高速匯出工具請參照:資料泵EXPDP 匯出工具的使用SQL*Loader請參照:SQL*Loader使用方法

 

一、資料泵的體系結構

    資料泵的體系結構在資料泵EXPDP 匯出工具的使用已列出,再此不再贅述。

 

二、IMPDP支援的介面及匯入模式

    匯入介面

        使用命令列帶引數的

        使用命令列帶引數檔案

        使用命令列互動

        使用database console(GUI)

    幾種常用的匯入模式

        匯入表

        匯入方案

        匯入表空間

        匯入資料庫

        傳輸表空間模式

               

       

三、演示如何匯入

    1.關於檢視impdp的幫助,使用以下命令

        [oracle@oradb ~]$ impdp -?  [oracle@oradb ~]$ impdp -help  前者提供幫助資訊並開啟命令列互動模式

   

    2. 匯入表

        --將表dept,emp匯入到scott方案中

        impdp scott/tiger directory=dump_scott dumpfile=tab.dmp tables=dept,emp

 

        --將表deptempscott方案匯入到system方案中,對於方案的轉移,必須使用remap_shcema引數

        impdp system/manage directory=dump_scott dumpfile=tab.dmp tables=scott.dept,scott.emp remap_schema=scott:system

 

    3.匯入方案

        --dump_scott目錄下的schema.dmp匯入到scott方案中

        impdp scott/tiger directory=dump_scott dumpfile=schema.dmp schemas=scott

       

        --scott方案中的所有物件轉移到system方案中

        impdp system/redhat directory=dump_scott dumpfile=schema.dmp schemas=scott remap_schema=scott:system

 

    4.匯入表空間

        impdp system/redhat directory=dump_scott dumpfile=tablespace.dmp tablespaces=user01

       

    5.匯入資料庫

        impdp system/redhat directory=dump_scott dumpfile=full.dmp full=y      

       

    6.將資料物件原樣導回(演示從Windows客戶端來實現,資料庫基於Linux系統)

        Windows客戶端來匯出scott.emp表,匯出後刪除該表,再原樣導回

        C:/>expdp scott/tiger@list2 directory=dump_scott dumpfile=emp.dmp tables=emp

       

        C:/>sqlplus scott/tiger@list2

 

        SQL*Plus: Release 10.2.0.1.0 - Production on 星期一920 20:50:35 2010

 

        Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

        Connected to:

        Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

        With the Partitioning, OLAP and Data Mining options

 

        SQL> drop table emp;

 

        Table dropped.

 

        SQL> commit;

 

        Commit complete.

        SQL> select count(1) from emp;

        select count(1) from emp

                             *

        ERROR at line 1:

        ORA-00942: table or view does not exist

        SQL> host impdp scott/tiger@list2 directory=dump_scott dumpfile=emp.dmp

 

        SQL> select count(1) from emp;

          COUNT(1)

        ----------

                14     

 

    7.將匯出的物件使用remap_schema引數轉移到不同的方案

        a.deptscott使用者匯入到system使用者下

            expdp scott/tiger directory=dump_scott dumpfile=dept.dmp tables=dept

               

            方法一:

            impdp system/redhat tables=scott.dept directory=dump_scott dumpfile=dept.dmp remap_schema=scott:system

 

            方法二:

            sql>grant imp_full_database to scott;

            impdp scott/tiger directory=dump_scott dumpfile=dept.dmp tables=dept

                  remap_schema=scott:system table_exists_action=replace

   

        b.scott方案下的所有物件匯入到system方案下

            expdp scott/tiger directory=dump_scott dumpfile=allobj.dmp schemas=scott

            impdp scott/tiger directory=dump_scott dumpfile=allobj.dmp remap_schema=scott:system table_exists_action=replace

 

    8.使用remap_datafile引數轉移到不同的資料檔案(用於不同平臺之間存在不同命名方式時)

        下面的示例首先建立了一個引數檔案,引數檔名為payroll.par

            directory=pump_scott

            full=y

            dumpfile=datafile.dmp

            remap_datafile='db$:[hrdata.payroll]tbs2.f':'/db/hrdata/payroll/tbs2.f'  --指明重新對映資料檔案

   

            impdp scott/tiger PARFILE=payroll.par

   

    9.使用remap_tablespace引數轉移到不同的表空間

        impdp scott/scott remap_tablespace=users:tbs1 directory=dpump_scott dumpfile=users.dmp

       

    10.並行匯入:

        expdp e/e directory=dump_e dumpfile=a_%u.dmp schemas=e parallel=3

 

        impdp e/e directory=dump_e dumpfile=a_%u.dmp schemas=e parallel=3 table_exists_action=replace

 

四、資料泵impdp引數:

    1.REMAP_DATAFILE

        該選項用於將源資料檔名轉變為目標資料檔名,在不同平臺之間搬移表空間時需要該選項.

        REMAP_DATAFILE=source_datafie:target_datafile

 

    2.REMAP_SCHEMA

        該選項用於將源方案的所有物件裝載到目標方案中.

        REMAP_SCHEMA=source_schema:target_schema

 

    3.REMAP_TABLESPACE

        將源表空間的所有物件匯入到目標表空間中

        REMAP_TABLESPACE=source_tablespace:target:tablespace

 

    4.REUSE_DATAFILES

        該選項指定建立表空間時是否覆蓋已存在的資料檔案.預設為N

        REUSE_DATAFIELS={Y | N}

 

    5.SKIP_UNUSABLE_INDEXES

        指定匯入是是否跳過不可使用的索引,預設為N

 

    6,sqlfile  引數允許建立DDL 指令碼檔案

        impdp scott/tiger directory=dump_scott dumpfile=a1.dmp sqlfile=c.sql

        預設放在directory下,因此不要指定絕對路徑

 

    7.STREAMS_CONFIGURATION

        指定是否匯入流後設資料(Stream Matadata),預設值為Y.

 

    8.TABLE_EXISTS_ACTION

        該選項用於指定當表已經存在時匯入作業要執行的操作,預設為SKIP

        TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }

 

        當設定該選項為SKIP,匯入作業會跳過已存在表處理下一個物件;

        當設定為APPEND,會追加資料

        當設定為TRUNCATE,匯入作業會截斷表,然後為其追加新資料;

        當設定為REPLACE,匯入作業會刪除已存在表,重建表並追加資料,

        注意,TRUNCATE選項不適用與簇表和NETWORK_LINK選項

 

    9.TRANSFORM

        該選項用於指定是否修改建立物件的DDL語句

        TRANSFORM=transform_name:value[:object_type]

        transform_name用於指定轉換名,其中SEGMENT_ATTRIBUTES用於標識段屬性(物理屬性,儲存屬性,表空間,日誌等資訊),

        STORAGE用於標識段儲存屬性,VALUE用於指定是否包含段屬性或段儲存屬性,object_type用於指定物件型別.

 

        Impdp scott/tiger directory=dump dumpfile=tab.dmp transform=segment_attributes:n:table

 

    10.TRANSPORT_DATAFILES

        該選項用於指定搬移空間時要被匯入到目標資料庫的資料檔案

        TRANSPORT_DATAFILE=datafile_name

        Datafile_name用於指定被複制到目標資料庫的資料檔案

        Impdp system/manager DIRECTORY=dump DUMPFILE=tts.dmp

        TRANSPORT_DATAFILES=/user01/data/tbs1.f’

 

五、影響資料泵效能的相關引數

        對下列引數建議如下設定

        disk_asynch_io=true

        db_block_checking=false

        db_block_checksum=false

 

        對下列引數建議設定更高的值來提高併發

        processes                    

        sessions   

        parallel_max_servers                

       

        對下列引數應儘可能的調大空間大小

        shared_pool_size                   

        undo_tablespace  

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22578826/viewspace-703478/,如需轉載,請註明出處,否則將追究法律責任。

相關文章