expdp,impdp的多使用者遷移

kakaxi9521發表於2016-11-30

週末要做一個小型的資料遷移,確定使用expdp,impdp工具做遷移。
os版本: Red Hat Enterprise Linux Server release 6.6
資料庫版本: oracle 11.2.0.4

1. 檢視源庫所有表空間和資料檔案,確定所要遷移的使用者資料所在的表空間。
select * from                                                                                                                                
(select tablespace_name,file_name from dba_data_files where tablespace_name not in ('SYSTEM','SYSAUX','USERS','UNDOTBS1','TEMP') order by 1 )
union all                                                                                                                                    
(select tablespace_name,file_name from dba_temp_files where tablespace_name not in ('TEMP')  )  ;

2. 建立目標表空間批次的SQL,建立表空間。
資料表空間的建立指令碼:
select 'create tablespace '||a.tablespace_name||' datafile ''+DATA/xxxxx/datafile/'||b.tablespace_name||'01.dbf''  size 5g autoextend on;' from
(select tablespace_name from  dba_tablespaces where tablespace_name not in ('SYSTEM','SYSAUX','USERS','UNDOTBS1') and contents not in ('TEMPORARY')) a,                  
(select tablespace_name from  dba_tablespaces where tablespace_name not in ('SYSTEM','SYSAUX','USERS','UNDOTBS1') and contents not in ('TEMPORARY') ) b                   
where a.tablespace_name=b.tablespace_name                                                                                                                   
order by 1 ;

3. 在源端做資料匯出。
expdp username/passwd directory=exp_dir  dumpfile=expdp_xxxxx_1129.dmp  log=/ulic/backup/expdp_xxxxx_1129.log schemas=xxxxx;

4. 將匯出的dmp檔案透過sftp工具down到目標端。
sftp

5. 在目標端做資料匯入。
impdp username/passwd directory=exp_dir  dumpfile=expdp_xxxxx_1129.dmp  log=/ulic/backup/expdp_xxxxx_1129.log schemas=xxxxx;

一篇很有用的文章
http://blog.itpub.net/21374452/viewspace-2129360/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21374452/viewspace-2129380/,如需轉載,請註明出處,否則將追究法律責任。

相關文章