【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】Oracle資料泵遷移資料命令參考(expdp/impdp說明)Oracle
- 【ASK_ORACLE】重灌Oracle資料泵(Datapump)工具的方法Oracle
- 【DATAPUMP】Oracle資料泵定時備份刪除指令碼Oracle指令碼
- ORACLE for aix 11.2.0.1 DATAPUMP expdp之BUG 9470768OracleAI
- Datapump:EXCLUDE/INCLUDE
- [20220128]Check the datapump file header information in Oracle.txtHeaderORMOracle
- Oracle資料庫(資料泵)遷移方案(上)Oracle資料庫
- Oracle資料庫(資料泵)遷移方案(下)Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(下)Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(上)Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(中)Oracle資料庫
- 無外網Oracle資料庫遷移Oracle資料庫
- 資料泵datapump(expdp/impdp)的parfile用法,避免跳脫字元字元
- Oracle 19c adg全庫遷移資料Oracle
- 資料庫遷移資料庫
- Laravel migration (資料庫遷移) 的使用Laravel資料庫
- Oracle資料庫中資料行遷移與行連結Oracle資料庫
- datapump 匯出匯入ORA-07445
- AWS RDS Oracle資料遷移Oracle
- 【DATAPUMP】Oracle資料泵優化及提高效率的一些引數介紹Oracle優化
- 【ASK_ORACLE】刪除DBA_DATAPUMP_JOBS檢視中的異常資料泵JOB的方法Oracle
- 使用資料泵(expdp、impdp)遷移資料庫流程資料庫
- laravel資料庫遷移Laravel資料庫
- 資料庫遷移 :理解資料庫
- redis資料庫遷移Redis資料庫
- Oracle資料庫升級或資料遷移的方法探討Oracle資料庫
- 異構資料庫資料遷移 oracle to mysql之oracle sqlloader和mysql load data資料庫OracleMySql
- dm資料庫遷移命令資料庫
- 用rman遷移資料庫資料庫
- 資料庫遷移手記資料庫
- 遷移MySQL 5.7資料庫MySql資料庫
- 資料庫遷移神器——Flyway資料庫
- linux mysql資料庫遷移LinuxMySql資料庫
- django資料庫遷移-15Django資料庫
- SQL Server資料庫遷移SQLServer資料庫
- DataPump Export (EXPDP) Fails With Error LPX-216 Invalid CharacterExportAIError
- Oracle資料庫遷移至PolarDb(阿里雲資料庫)Oracle資料庫阿里
- 【BUILD_ORACLE】使用Oracle資料泵線上不停機克隆/遷移PDBUIOracle
- 雲資料庫管理與資料遷移資料庫