2015年10月14日 星期三

Data Pump 複製 Schema 到另一個 Database Instance


--Login by SYSTEM@wmdev (Target DB)
-- 1. 登入 target db,建立一個 db directory,指定一個檔案系統的目錄路徑

CREATE DIRECTORY [DIR_NAME] AS '/xxxxx/xxxxx';


-- 2. 將此 directory grant read and write 權限給此次 import 會用到的 user schemas
GRANT READ,WRITE ON DIRECTORY [DIR_NAME] TO [Schema_Name];





-- 3. 建立 db link 到 source db (最好使用 source db 的 system 帳號建立 db link)
CREATE PUBLIC DATABASE LINK [Connection_Name]
CONNECT TO system IDENTIFIED BY '********'
USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = tcp.world)(PROTOCOL = TCP)(Host = [Host_Name])(Port = 1521))) (CONNECT_DATA = (SID = [SID])))';



--查看 DB Link 有沒有建成功
SELECT *
FROM ALL_DB_LINKS;



--試著從 DB Link 做 SELECT
SELECT 'A'
FROM DUAL@[Connection_Name];


-- 4. 登入 terminal 執行 impdb 的指令 (詳見附件檔案的範例,指令用法請參考 Oracle Data Pump)
--Login Terminal - 執行 Data Pump - Network Import
--Import Schema 
impdp system/*******@[TNS_NAME] DIRECTORY=[DIR_NAME] SCHEMAS=[Schema_Name] TABLE_EXISTS_ACTION=TRUNCATE NETWORK_LINK=[Connection_Name] ESTIMATE=STATISTICS VERSION=10.2 EXCLUDE=JOB PARALLEL=8



-- 5. Import 完成,檢查 import.log 是否有 error


-- 6. Drop db link
DROP PUBLIC DATABASE LINK WMDB_ONLINE2_CONNECTION;

-- 7. Drop db DIRECTORY
DROP DIRECTORY DMPDIR;

沒有留言:

張貼留言