1. 程式人生 > >Oracle資料泵(Dump)匯出、匯入

Oracle資料泵(Dump)匯出、匯入

*該匯入匯出方式完全適用於分割槽表*

匯出、匯入前準備

注:使用sys、system等系統使用者操作!
1)建立DIRECTORY目錄物件

CREATE DIRECTORY exp_dir AS '/oracle/db/zone'; --存放dmp、log檔案

2)為使使用者user_local授權該目錄

GRANT READ, WRITE ON DIRECTORY exp_dir TO user_local;

本地匯出、本地匯入

1:本地匯出
1)匯出指定表

expdp user_local/user_local DIRECTORY=exp_dir DUMPFILE=tab
.dmp LOGFILE=tab.log TABLES=USER_OFFICE --TABLES=表1,表2,表3等

2)匯出整庫(方案)

expdp user_local/user_local DIRECTORY=exp_dir  DUMPFILE=tab.dmp LOGFILE=tab.log SCHEMAS=user_local  
--SCHEMAS=使用者(所有可操作表等)

3)匯出全庫

expdp system/orcl DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log FULL=Y

2:本地匯入
1)匯入指定表

Impdp user_local/user_local DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log TABLE_EXISTS_ACTION=APPEND TABLES=USER_OFFICE

說明:TABLES=USER_OFFICE :可以不寫
TABLE_EXISTS_ACTION=APPEND :追加資料,資料不重複可多次匯入
當TABLE_EXISTS_ACTION=REPLACE時,則全量匯入,該方法會直接刪除表,然後重新建立該表並將資料全部寫入

2)匯入整庫(方案)

impdp user_local/user_local DIRECTORY=exp_dir DUMPFILE=tab
.dmp LOGFILE=tab.log SCHEMAS=user_local

3)匯入全庫

impdp system/orcl DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log FULL=Y

不落地匯入

1:說明
遠端資料庫資料匯入本地資料庫!
1)遠端資料庫:
IP:192.168.1.200
使用者名稱:user_remote
密碼:user_remote_
例項名:orcl
表空間:remote_space

2)本地資料庫:
使用者名稱:user_local
密碼:user_local
表空間:local_space

2:本地增加監聽(REMOTE_ORCL)

REMOTE_ORCL =  
  (DESCRIPTION =  
    (ADDRESS_LIST =  
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.200)(PORT = 1521))  
    )  
    (CONNECT_DATA =  
      (sid = orcl)  
    )  
  )

3:建立遠端連結database link(source_db_link)

create database link source_db_link connect to user_remote identified by user_remote_ using 'REMOTE_ORCL'

REMOTE_ORCL :上一步增加的監聽名

4:遠端庫表(USER_OFFICE)匯入本地庫

impdp  user_local/user_local directory=exp_dir  logfile=tab.log network_link=source_db_link  TABLE_EXISTS_ACTION=APPEND 
tables=user_remote.USER_OFFICE remap_schema=user_remote:user_local REMAP_TABLESPACE=remote_space:local_space

注:若提示許可權不足,可用sys系統使用者將dba許可權賦予本地使用者user_local即可解決,或者將匯入的使用者連線改為‘system/orcl’
1)network_link=source_db_link :上一步建立的連線名
2)TABLE_EXISTS_ACTION=APPEND :追加資料,不重複資料可多次匯入
注:可以將‘APPEND’改為‘REPLACE’,該方法將刪除原表,然後重新建立該表並匯入資料
3)tables=user_remote.USER_OFFICE :表名,多張表用‘,’隔開
4)remap_schema=user_remote:user_local :不同使用者之間的資料搬移,寫法:遠端使用者:本地使用者,如果相同可以不寫
5)REMAP_TABLESPACE=remote_space:local_space :不同表空間之間資料的搬移,寫法:遠端表空間名:本地表空間名,如果相同可以不寫