熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

使用impdp復制oracle的schema數據遷移

2013-11-13 16:15:46  來源: Oracle 

  測試環境:
    源 windows oracle  
    目標windows oracle  

    注本文中所說的 schema 和 user 是一個意思 

    impdp 的數據源既可以是expdp 導出來的DMP文件也可以是一數據庫通過network_link 參數來指定數據源schemas 參數說明要復制的用戶remap_schemas 參數說明源用戶與目標用戶的匹配關系remap_tablepace 來調整原 schemas 使用的表空間與目標數據庫用戶要表空間的對應關系這樣基本上可以把源schema的數據導入到目標數據庫格式如下

    impdp user/password parfile=parfilelog

    **********parfilelog 的內容***************

    network_link=目標數據庫上的數據庫鏈
    schema=源數據庫上導出數據的用戶 
    remap_schema=源用戶:目標用戶 
    remap_tablespace=源用戶使用的表空間:目標用戶將使用的表空間(包括臨時表空間) 

    **********parfilelog 的內容*************** 

    過程舉例 

    在目標數據庫上創建數據庫鏈指向源數據庫數據庫鏈中連接的用戶必須具備EXP_FULL_DATABASE
角色的權限 

    A新建數據庫鏈裡的用戶授予create session 和使用users 空間的權限
SQL> create user link identified by

    用戶已創建 

    SQL> grant create session to link; 

    授權成功 

    SQL> ALTER USER LINK QUOTA UNLIMITED ON USERS; 

    用戶已更改 

    B為該用戶創建一表用於測試復制用戶過程 
    SQL> CREATE TABLE LINKDOC_TYPE AS SELECT * FROM INFODOC_TYPE; 

    表已創建 

    SQL> SELECT TABLE_NAME FROM DBA_TABLES WHERE OWNER=LINK

    TABLE_NAME 
     
    DOC_TYPE 

    C使用該用戶來創建數據庫鏈 
    SQL> create public database link tolink connect to link identified by using ZHS

    數據庫鏈接已創建 

    D使用該鏈來復制link用戶報 ORA: cannot link privileged user to nonprivileged user
錯誤 

    d:\oracle\product\\db_\BIN>impdp network_link=tolink schemas=link remap_schema=link:link 

    Import: Release Production on Wednesday March :: 

    Copyright (c) Oracle All rights reserved 

    Username: / as sysdba 

    Connected to: Oracle Database g Enterprise Edition Release Production 
    With the Partitioning OLAP and Data Mining options 
    ORA: privileges are required 
    ORA: cannot link privileged user to nonprivileged user

  F授予 exp_ful_database 權限後復制成功 

    SQL> grant exp_full_database to link; 
    授權成功 

    d:\oracle\product\\db_\BIN>impdp network_link=tolink schemas=link remap_schema=link:link 

    Import: Release Production on Wednesday March :: 

    Copyright (c) Oracle All rights reserved 

    Username: / as sysdba 

    Connected to: Oracle Database g Enterprise Edition Release Production 
    With the Partitioning OLAP and Data Mining options 
    FLASHBACK automatically enabled to preserve database integrity 
    Starting SYSSYS_IMPORT_SCHEMA_: /******** AS SYSDBA network_link=tolink schemas=link remap
_schema=link:link 
    Estimate in progress using BLOCKS method 
    Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA 
    Total estimation using BLOCKS method: KB 
    Processing object type SCHEMA_EXPORT/USER 
    Processing object type SCHEMA_EXPORT/SYSTEM_GRANT 
    Processing object type SCHEMA_EXPORT/ROLE_GRANT 
    Processing object type SCHEMA_EXPORT/DEFAULT_ROLE 
    Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA 
    Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA 
    Processing object type SCHEMA_EXPORT/TABLE/TABLE 
    imported LINKDOC_TYPE rows 
    Job SYSSYS_IMPORT_SCHEMA_ successfully completed at :: 

  又如在兩數據庫間復制用戶 

    A源數據庫是上面例子中的LINK 
    B目標數據庫是版本要將源中的LINK復制到目標中的LINK 

    SYS@BTB>create public database link tolink connect to link identified by using zhs
    數據庫鏈接已創建 

    SYS@BTB>SELECT * FROM TAB@TOLINK; 
    TNAME TABTYPE CLUSTERID 
     
    DOC_TYPE TABLE 

    F:\oracle\product\\db_\BIN>impdp network_link=tolink schemas=link remap_schema=link:link 

    Import: Release Production on 星期三 :: 

    Copyright (c) Oracle All rights reserved 

    用戶名: / as sysdba 

    連接到: Oracle Database g Enterprise Edition Release Production 
    With the Partitioning OLAP and Data Mining options 
    自動啟用 FLASHBACK 以保持數據庫完整性 
    啟動 SYSSYS_IMPORT_SCHEMA_: /******** AS SYSDBA network_link=tolink schemas=link remap_sch
ema=link:link 
    正在使用 BLOCKS 方法進行估計 
    處理對象類型 SCHEMA_EXPORT/TABLE/TABLE_DATA 
    使用 BLOCKS 方法的總估計: KB 
    處理對象類型 SCHEMA_EXPORT/USER 
    處理對象類型 SCHEMA_EXPORT/SYSTEM_GRANT 
    處理對象類型 SCHEMA_EXPORT/ROLE_GRANT 
    處理對象類型 SCHEMA_EXPORT/DEFAULT_ROLE 
    處理對象類型 SCHEMA_EXPORT/TABLESPACE_QUOTA 
    處理對象類型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA 
    處理對象類型 SCHEMA_EXPORT/TABLE/TABLE 
    導入了 LINKDOC_TYPE 行 
    作業 SYSSYS_IMPORT_SCHEMA_ 已於 :: 成功完成 

    F:\oracle\product\\db_\BIN> 

    SYS@BTB>select * from all_users order by
    USERNAME USER_ID CREATED 
     
    SYSTEM :: 
    SYS :: 
    OUTLN :: 
    DIP :: 
    TSMSYS :: 
    DBSNMP :: 
    WMSYS :: 
    MGMT_VIEW :: 
    SCOTT :: 
    SCOTT :: 
    LINK :: 

    從LINK的創建時間可以知道該用戶是剛創建的 
    注: 
    從上面兩例子看出不論是在兩數據庫間哈市是在同一數據庫裡復制SCHEMAS都必須 
    使用network_link才能說明是在復制數據 
    remap_schema=源用戶:目標用戶 中的目標用戶可以事先創建


From:http://tw.wingwit.com/Article/program/Oracle/201311/18055.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.