【DATAPUMP】使用DataPump遷移Oracle資料庫
<1div style="margin:0px;padding:0px;font-family:" font-size:16px;"="">
前幾天測試過使用RMAN遷移Oracle資料庫(Oracle11.2.0.1-Oracle11.2.0.4,Windows to Linux) 下面簡單說下使用資料泵的方式如何遷移。
相對來說,確實比較簡單,匯出匯入,但也可以分為兩種方式,一個是按照業務使用者來做匯出,再個全庫匯出,不只是多了一個full=y,其他也有一些不同的,好,我們來看看
環境介紹,源端Windows2008 x64+Oracle11.2.0.1
目標端:Redhat6.7 x64+Oracle11.2.0.4
首先環境準備,也就是目標端環境準備,Linux下Oracle資料庫安裝及打最新補丁,此處忽略。
不管是全庫匯出匯入還是按照業務使用者方式,都需要提前建立表空間,尤其資料量比較大的,都需要提前建立好,這樣也節約時間。 那麼我們如何獲取源庫建立表空間的ddl呢?
如下語句會列出所有表空間的建立語句,請注意系統相關表空間大小,例如SYSTEM、USERS,有可能表空間比較大,會有多個資料檔案。
set long 1000000
set pages 9999
select dbms_metadata.get_ddl('TABLESPACE',tablespace_name) from dba_tablespaces;
查詢某一個表空間的DDL語句
select dbms_metadata.get_ddl('TABLESPACE','MYDB') from dual;
源端可以執行全庫匯出操作了,首先我們需要建立directory
create directory exp as 'd:\datapump'; --匯出使用sys使用者,無需賦權
expdp '/ as sysdba' directory=my_exp dumpfile=myexpdb%U.dmp logfile=myexpdb.log parallel=2 EXCLUDE=STATISTICS parfile=mypar.par
#mypar.par m注意可以排除系統使用者及非OPEN使用者 全庫匯出無需建立使用者
FULL=Y
EXCLUDE=SCHEMA:"in (select username from dba_users where account_status<>'OPEN' or username in('SYS','SYSTEM'))"
下面就簡單了,目標端就可以匯入
注意:全庫匯出,匯入時會匯入role、DIRECTORY、TABLESPACE、CONTEXT等,我們可以選擇排除
impdp \'/ as sysdba\' directory=exp dumpfile=myexpdb%U.dmp logfile=myimpdb01.log parallel=2 exclude=DIRECTORY exclude=role exclude=CONTEXT exclude=TABLESPACE
匯入完成,收集統計資訊
exec dbms_stats.GATHER_DATABASE_STATS(estimate_percent=>null);
那麼如果只匯出業務使用者呢,我們需要建立使用者,並且賦予相關許可權
透過以下語句生成建立使用者的語句(Oracle11g)
透過以下語句生成賦許可權語句
匯出語句類似如下:
expdp '/ as sysdba' directory=my_exp dumpfile=myexpdb%U.dmp logfile=myexpdb.log parallel=2 EXCLUDE=STATISTICS schema=mydb,test
匯入語句:
impdp \'/ as sysdba\' directory=exp dumpfile=myexpdb%U.dmp logfile=myimpdb01.log parallel=2
收集資料庫統計資訊
當然,這需要停機時間,如果對於停機時間要求特別嚴格,建議使用OGG相關同步軟體,rman增量備份也是可以一試的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2146706/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Datapump資料遷移的實踐總結
- Datapump資料遷移前的準備工作
- Datapump資料遷移前的準備工作(二)
- 【Datapump】Oracle資料泵遷移資料命令參考(expdp/impdp說明)Oracle
- 海量資料遷移之sqlldr和datapump的缺點分析SQL
- datapump跨平臺升級遷移的總結
- Oracle DataPump之二Oracle
- Oracle DataPump之一Oracle
- Oracle Datapump 學習Oracle
- ORACLE_DATAPUMP & External TableOracle
- 【ASK_ORACLE】重灌Oracle資料泵(Datapump)工具的方法Oracle
- Oracle DataPump Quick Start [ID 413965.1]OracleUI
- ORACLE資料庫遷移Oracle資料庫
- 【遷移】使用rman遷移資料庫資料庫
- 使用datapump 匯出匯入同義詞(export and import synonym using datapump)ExportImport
- 資料庫-oracle-資料庫遷移資料庫Oracle
- 使用RMAN進行Oracle資料庫遷移Oracle資料庫
- about datapump parallelParallel
- Speedup Datapump ImportImport
- oracle_datapump建立外部表案例Oracle
- 【DATAPUMP】Oracle資料泵定時備份刪除指令碼Oracle指令碼
- Oracle資料庫資料遷移流程Oracle資料庫
- datapump跨平臺升級遷移的對比測試和優化優化
- 使用DataPump的Sample引數來進行資料抽樣
- sqlldr和oracle_datapump效能比較SQLOracle
- datapump簡介(一)
- oracle 遷移資料庫到asmOracle資料庫ASM
- datapump跨平臺升級遷移的對比測試和最佳化
- 使用SQL Developer 遷移異構資料庫到OracleSQLDeveloper資料庫Oracle
- 使用expdp、impdp遷移資料庫資料庫
- Oracle資料庫(資料泵)遷移方案(上)Oracle資料庫
- Oracle資料庫(資料泵)遷移方案(下)Oracle資料庫
- 無外網Oracle資料庫遷移Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(上)Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(中)Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(下)Oracle資料庫
- Oracle資料庫遷移之一:RMANOracle資料庫
- Oracle資料庫遷移方案比較Oracle資料庫