*該匯入匯出方式完全適用於分區表* 匯出、匯入前準備
註:使用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 :不同資料表空間之間資料的搬移,寫法:遠端資料表空間名:本地資料表空間名,如果相同可以不寫