posts - 2,  comments - 0,  trackbacks - 0

          Data Pump 反映了整個導出/導入過程的完全革新。不使用常見的 SQL 命令,而是應用專用 API(direct path api etc)
          來以更快得多的速度加載和卸載數據。

          1.Data Pump 導出 expdp
          例子:
          sql>create directory
          dpdata1 as '/u02/dpdata1';
          sql>grant read, write on directory dpdata1 to
          ananda;
          $expdp ananda/abc123 tables=CASES directory=DPDATA1
          dumpfile=expCASES.dmp    job_name=CASES_EXPORT

          $expdp ananda/abc123
          tables=CASES directory=DPDATA1
            dumpfile=expCASES_%U.dmp parallel=4
          job_name=Cases_Export

          include/exclude
          例子:
          include=table:"in('DB','TS')"
          或者include=table:"like
          '%E%'"
          或者include=function,package,procedure,table:"='EMP'"
          或者exclude=SEQUENCE,TABLE:"IN
          ('EMP','DEPT')"

          2.Data Pump 導入 expdp

          1)從expdp中獲取數據源
          exp.dmp
          2)復制某個數據庫中的一個schema到另一個數據庫中。
          3)
          在同一個數據庫中把一個schema中所有的對象復制到另一個schema中。

          例子:

          1)impdp 的數據源是expdp
          導出來的DMP文件

          impdp ananda/abc123 directory=dpdata1 dumpfile=expCASES.dmp
          job_name=cases_import

          2)復制某個數據庫中的一個schema到另一個數據庫中。
          --1.newwork_link為目標數據庫建立的database_link,
          (用戶test
          需要grant exp_full_database to TEST; )
          create public database link
          TOLINK
          connect to TEST identified by oracle
          using '(DESCRIPTION = 
            
          (ADDRESS_LIST =
               (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.20.199)(PORT =
          1521))
             )
             (CONNECT_DATA =
               (SERVICE_NAME = orcl)
            
          )
          )';

          --2.impdp在目標數據庫服務器上執行 只能低版本向高版本imp
          impdp network_link=TOLINK
          schemas=test remap_schema=test:link2


          3)
          在同一個數據庫中把一個schema中所有的對象復制到另一個schema中。

          --1.創建連接自己的database
          link:

          create public database link system_self connect to system
          identified by "system" using 'orcl';

          數據庫鏈接已創建。

          --2.復制hr
          schema到test schema:

          impdp system/system network_link=system_self
          schemas=hr remap_schema=hr:test


          一、創建邏輯目錄,該命令不會在操作系統創建真正的目錄,最好以system等管理員創建。
          create directory dpdata1 as
          'd:\test\dump';

          二、查看管理理員目錄(同時查看操作系統是否存在,因為Oracle并不關心該目錄是否存在,如果不存在,則出錯)
          select
          * from dba_directories;

          三、給scott用戶賦予在指定目錄的操作權限,最好以system等管理員賦予。
          grant
          read,write on directory dpdata1 to scott;

          四、導出數據
          1)按用戶導
          expdp
          scott/tiger@orcl schemas=scott dumpfile=expdp.dmp
          DIRECTORY=dpdata1;
          2)并行進程parallel
          expdp scott/tiger@orcl directory=dpdata1
          dumpfile=scott3.dmp parallel=40 job_name=scott3
          3)按表名導
          expdp
          scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp
          DIRECTORY=dpdata1;
          4)按查詢條件導
          expdp scott/tiger@orcl directory=dpdata1
          dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
          5)按表空間導
          expdp
          system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp
          TABLESPACES=temp,example;
          6)導整個數據庫
          expdp system/manager DIRECTORY=dpdata1
          DUMPFILE=full.dmp FULL=y;

          五、還原數據
          1)導到指定用戶下
          impdp scott/tiger
          DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
          2)改變表的owner
          impdp
          system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept
          REMAP_SCHEMA=scott:system;
          3)導入表空間
          impdp system/manager DIRECTORY=dpdata1
          DUMPFILE=tablespace.dmp TABLESPACES=example;
          4)導入數據庫
          impdb system/manager
          DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
          5)追加數據
          impdp system/manager
          DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system
          TABLE_EXISTS_ACTION=append;


          Expdp/Impdp的相關參數
          EXPDP命令行選項
          1.
          ATTACH
          該選項用于在客戶會話與已存在導出作用之間建立關聯.語法如下
          ATTACH=[schema_name.]job_name
          Schema_name用于指定方案名,job_name用于指定導出作業名.注意,如果使用ATTACH選項,在命令行除了連接字符串和ATTACH選項外,不能指定任何其他選項,示例如下:
          Expdp
          scott/tiger ATTACH=scott.export_job
          2.
          CONTENT
          該選項用于指定要導出的內容.默認值為ALL
          CONTENT={ALL | DATA_ONLY |
          METADATA_ONLY}
          當設置CONTENT為ALL
          時,將導出對象定義及其所有數據.為DATA_ONLY時,只導出對象數據,為METADATA_ONLY時,只導出對象定義
          Expdp scott/tiger
          DIRECTORY=dump DUMPFILE=a.dump
          CONTENT=METADATA_ONLY
          3.
          DIRECTORY
          指定轉儲文件和日志文件所在的目錄
          DIRECTORY=directory_object
          Directory_object用于指定目錄對象名稱.需要注意,目錄對象是使用CREATE
          DIRECTORY語句建立的對象,而不是OS 目錄
          Expdp scott/tiger DIRECTORY=dump
          DUMPFILE=a.dump
          建立目錄:
          CREATE DIRECTORY dump as
          ‘d:dump’;
          查詢創建了那些子目錄:
          SELECT * FROM dba_directories;
          4.
          DUMPFILE
          用于指定轉儲文件的名稱,默認名稱為expdat.dmp
          DUMPFILE=[directory_object:]file_name
          [,….]
          Directory_object用于指定目錄對象名,file_name用于指定轉儲文件名.需要注意,如果不指定directory_object,導出工具會自動使用DIRECTORY選項指定的目錄對象
          Expdp
          scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp
          5.
          ESTIMATE
          指定估算被導出表所占用磁盤空間分方法.默認值是BLOCKS
          EXTIMATE={BLOCKS |
          STATISTICS}
          設置為BLOCKS時,oracle會按照目標對象所占用的數據塊個數乘以數據塊尺寸估算對象占用的空間,設置為STATISTICS時,根據最近統計值估算對象占用空間
          Expdp
          scott/tiger TABLES=emp ESTIMATE=STATISTICS
          DIRECTORY=dump
          DUMPFILE=a.dump
          6.
          EXTIMATE_ONLY
          指定是否只估算導出作業所占用的磁盤空間,默認值為N
          EXTIMATE_ONLY={Y |
          N}
          設置為Y時,導出作用只估算對象所占用的磁盤空間,而不會執行導出作業,為N時,不僅估算對象所占用的磁盤空間,還會執行導出操作.
          Expdp
          scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y
          7.
          EXCLUDE
          該選項用于指定執行操作時釋放要排除對象類型或相關對象
          EXCLUDE=object_type[:name_clause]
          [,….]
          Object_type用于指定要排除的對象類型,name_clause用于指定要排除的具體對象.EXCLUDE和INCLUDE不能同時使用
          Expdp
          scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW
          8.
          FILESIZE
          指定導出文件的最大尺寸,默認為0,(表示文件尺寸沒有限制)
          9.
          FLASHBACK_SCN
          指定導出特定SCN時刻的表數據
          FLASHBACK_SCN=scn_value
          Scn_value用于標識SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同時使用
          Expdp
          scott/tiger DIRECTORY=dump DUMPFILE=a.dmp
          FLASHBACK_SCN=358523
          10.
          FLASHBACK_TIME
          指定導出特定時間點的表數據
          FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”
          Expdp
          scott/tiger DIRECTORY=dump DUMPFILE=a.dmp
          FLASHBACK_TIME=
          “TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY
          HH24:MI:SS’)”


          11. FULL
          指定數據庫模式導出,默認為N
          FULL={Y | N}
          為Y時,標識執行數據庫導出.
          12.
          HELP
          指定是否顯示EXPDP命令行選項的幫助信息,默認為N
          當設置為Y時,會顯示導出選項的幫助信息.
          Expdp
          help=y
          13. INCLUDE
          指定導出時要包含的對象類型及相關對象
          INCLUDE =
          object_type[:name_clause] [,… ]
          14.
          JOB_NAME
          指定要導出作用的名稱,默認為SYS_XXX
          JOB_NAME=jobname_string
          15.
          LOGFILE
          指定導出日志文件文件的名稱,默認名稱為export.log
          LOGFILE=[directory_object:]file_name
          Directory_object用于指定目錄對象名稱,file_name用于指定導出日志文件名.如果不指定directory_object.導出作用會自動使用DIRECTORY的相應選項值.
          Expdp
          scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log
          16.
          NETWORK_LINK
          指定數據庫鏈名,如果要將遠程數據庫對象導出到本地例程的轉儲文件中,必須設置該選項.
          17.
          NOLOGFILE
          該選項用于指定禁止生成導出日志文件,默認值為N.
          18.
          PARALLEL
          指定執行導出操作的并行進程個數,默認值為1
          19.
          PARFILE
          指定導出參數文件的名稱
          PARFILE=[directory_path] file_name
          20.
          QUERY
          用于指定過濾導出數據的where條件
          QUERY=[schema.] [table_name:]
          query_clause
          Schema
          用于指定方案名,table_name用于指定表名,query_clause用于指定條件限制子句.QUERY選項不能與
          CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等選項同時使用.
          Expdp
          scott/tiger directory=dump dumpfiel=a.dmp
          Tables=emp query=’WHERE
          deptno=20’
          21. SCHEMAS
          該方案用于指定執行方案模式導出,默認為當前用戶方案.
          22.
          STATUS
          指定顯示導出作用進程的詳細狀態,默認值為0
          23.
          TABLES
          指定表模式導出
          TABLES=[schema_name.]table_name[:partition_name][,…]
          Schema_name用于指定方案名,table_name用于指定導出的表名,partition_name用于指定要導出的分區名.
          24.
          TABLESPACES
          指定要導出表空間列表
          25.
          TRANSPORT_FULL_CHECK
          該選項用于指定被搬移表空間和未搬移表空間關聯關系的檢查方式,默認為N.
          當設置為Y時,導出作用會檢查表空間直接的完整關聯關系,如果表空間所在表空間或其索引所在的表空間只有一個表空間被搬移,將顯示錯誤信息.當設置為N時,
          導出作用只檢查單端依賴,如果搬移索引所在表空間,但未搬移表所在表空間,將顯示出錯信息,如果搬移表所在表空間,未搬移索引所在表空間,則不會顯示錯誤信息.
          26.
          TRANSPORT_TABLESPACES
          指定執行表空間模式導出
          27.
          VERSION
          指定被導出對象的數據庫版本,默認值為COMPATIBLE.
          VERSION={COMPATIBLE | LATEST |
          version_string}
          為COMPATIBLE時,會根據初始化參數COMPATIBLE生成對象元數據;為LATEST時,會根據數據庫的實際版本生成對象元數據.version_string用于指定數據庫版本字符串.調用EXPDP
          使用EXPDP工具時,其轉儲文件只能被存放在DIRECTORY對象對應的OS目錄中,而不能直接指定轉儲文件所在的OS目錄.因此,
          使用EXPDP工具時,必須首先建立DIRECTORY對象.并且需要為數據庫用戶授予使用DIRECTORY對象權限.

          轉自:http://www.cnblogs.com/wbzhao/archive/2012/04/06/2434702.html
          posted on 2013-01-30 16:08 wilsonyq 閱讀(4217) 評論(0)  編輯  收藏 所屬分類: DB
          主站蜘蛛池模板: 锡林郭勒盟| 靖安县| 庆城县| 福贡县| 宜兰县| 海安县| 石景山区| 乐业县| 花莲市| 太仓市| 兴仁县| 海兴县| 新乐市| 城市| 河北省| 丰都县| 梅河口市| 苏尼特右旗| 临西县| 海晏县| 米脂县| 钟山县| 四平市| 太白县| 新安县| 庐江县| 崇礼县| 长宁县| 清水河县| 望谟县| 北辰区| 余干县| 聂荣县| 冷水江市| 财经| 新河县| 西藏| 庆安县| 密山市| 日照市| 和平县|