Oracle Datapump 學習
近段時間要做一個使用datapump做資料遷移的專案,正好利用這個機會複習一下datapump。
1. exp/imp 於 expdp/impdp 的對比
1)效能對比
-- exp/imp預設採用傳統路徑(Conventional path)方式載入資料,效能較差,為了提高效能,可以把引數Direct=Y,採用直接路徑方式載入資料,效能較好。而expdp/impdp預設是採用直接路徑方式載入資料,效能較好。
常規路徑匯出使用SQL SELECT語句從表中抽取資料,直接路徑匯出則是將資料直接從磁碟讀到PGA再原樣寫入匯出檔案,從而避免了SQL命令處理層的資料轉換過程,大大提高了匯出效率。在資料量大的情況下,直接路徑匯出的效率優勢更為明顯,可比常規方法速度提高三倍之多。
-- exp/imp匯出的檔案在客戶端,效能還取決於網路狀況,而expdp/impdp直接將檔案匯出在伺服器端,效能不受網路狀況的影響。
-- expdp/impdp可並行執行(設定引數parallel)
-- 從匯出檔案大小看,expdp/impdp比較小,應該進行了一些壓縮。
2)用法區別
-- 更換使用者名稱,
exp/imp: fromuser touser
expdp/impdp: remap_schema
--更換表空間
用exp/imp的時候,要想更改表所在的表空間,需要手工去處理一下,
如alter table xxx move tablespace_new之類的操作。
用impdp只要用remap_tablespace='tabspace_old':'tablespace_new'
--是否要匯出資料行
exp (ROWS=Y 匯出資料行,ROWS=N 不匯出資料行)
expdp content(ALL:物件+匯出資料行,DATA_ONLY:只匯出物件,METADATA_ONLY:只匯出資料的記錄)
--多了傳輸表空間功能
transportable_tablespaces
2. datapump的命令列模式
有兩種方式進入命令列模式,一種是在執行過程中按CTRL+C命令進入,另一種是指定ATTACH引數連線到當前正在執行的匯入/匯出任務。
命令列模式的好處是可以動態調整匯入匯出過程,特別是對於大資料量匯入匯出,可以在執行過程中修改並行度、暫停或繼續執行等操作,非常的方便。
3.datapump的監控
datapump的監控有兩種方式,一種是進入命令列模式之後,用status引數檢視當前job的狀態,另一種是進入資料庫查詢v$session_longops檢視:
4. Filter
1)資料解析:QUERY 和SAMPLE
2)後設資料解析:EXCLUDE 和INCLUDE (注意,這兩個引數是互斥的),以下檢視列出了哪些物件是可以被解析的:DATABASE_EXPORT_OBJECTS, SCHEMA_EXPORT_OBJECTS, and TABLE_EXPORT_OBJECTS
5. 如何提高datapump效能
1)使用parallel引數設定適當並行度;
2)開啟磁碟非同步I/O:DISK_ASYNCH_IO=TRUE
3)取消資料庫一致性檢查:DB_BLOCK_CHECKING=FALSE,DB_BLOCK_CHECKSUM=FALSE
4)設定足夠的程式引數:PROCESSES SESSIONS PARALLEL_MAX_SERVERS
5)設定合理的SHARED_POOL_SIZE and UNDO_TABLESPACE
6. datapump使用注意
1)在使用parallel引數匯出時,記得dumpfile要用%U匹配符,而且並行度不要大於CPU的個數。
1. exp/imp 於 expdp/impdp 的對比
1)效能對比
-- exp/imp預設採用傳統路徑(Conventional path)方式載入資料,效能較差,為了提高效能,可以把引數Direct=Y,採用直接路徑方式載入資料,效能較好。而expdp/impdp預設是採用直接路徑方式載入資料,效能較好。
常規路徑匯出使用SQL SELECT語句從表中抽取資料,直接路徑匯出則是將資料直接從磁碟讀到PGA再原樣寫入匯出檔案,從而避免了SQL命令處理層的資料轉換過程,大大提高了匯出效率。在資料量大的情況下,直接路徑匯出的效率優勢更為明顯,可比常規方法速度提高三倍之多。
-- exp/imp匯出的檔案在客戶端,效能還取決於網路狀況,而expdp/impdp直接將檔案匯出在伺服器端,效能不受網路狀況的影響。
-- expdp/impdp可並行執行(設定引數parallel)
-- 從匯出檔案大小看,expdp/impdp比較小,應該進行了一些壓縮。
2)用法區別
-- 更換使用者名稱,
exp/imp: fromuser touser
expdp/impdp: remap_schema
--更換表空間
用exp/imp的時候,要想更改表所在的表空間,需要手工去處理一下,
如alter table xxx move tablespace_new之類的操作。
用impdp只要用remap_tablespace='tabspace_old':'tablespace_new'
--是否要匯出資料行
exp (ROWS=Y 匯出資料行,ROWS=N 不匯出資料行)
expdp content(ALL:物件+匯出資料行,DATA_ONLY:只匯出物件,METADATA_ONLY:只匯出資料的記錄)
--多了傳輸表空間功能
transportable_tablespaces
2. datapump的命令列模式
有兩種方式進入命令列模式,一種是在執行過程中按CTRL+C命令進入,另一種是指定ATTACH引數連線到當前正在執行的匯入/匯出任務。
命令列模式的好處是可以動態調整匯入匯出過程,特別是對於大資料量匯入匯出,可以在執行過程中修改並行度、暫停或繼續執行等操作,非常的方便。
3.datapump的監控
datapump的監控有兩種方式,一種是進入命令列模式之後,用status引數檢視當前job的狀態,另一種是進入資料庫查詢v$session_longops檢視:
-
USERNAME - job owner
-
OPNAME - job name
-
TARGET_DESC - job operation
-
SOFAR - megabytes (MB) transferred thus far during the job
-
TOTALWORK - estimated number of megabytes (MB) in the job
-
UNITS - 'MB'
-
MESSAGE - a formatted status message of the form.:
'
: : nnn out of mmm MB done'
4. Filter
1)資料解析:QUERY 和SAMPLE
2)後設資料解析:EXCLUDE 和INCLUDE (注意,這兩個引數是互斥的),以下檢視列出了哪些物件是可以被解析的:DATABASE_EXPORT_OBJECTS, SCHEMA_EXPORT_OBJECTS, and TABLE_EXPORT_OBJECTS
5. 如何提高datapump效能
1)使用parallel引數設定適當並行度;
2)開啟磁碟非同步I/O:DISK_ASYNCH_IO=TRUE
3)取消資料庫一致性檢查:DB_BLOCK_CHECKING=FALSE,DB_BLOCK_CHECKSUM=FALSE
4)設定足夠的程式引數:PROCESSES SESSIONS PARALLEL_MAX_SERVERS
5)設定合理的SHARED_POOL_SIZE and UNDO_TABLESPACE
6. datapump使用注意
1)在使用parallel引數匯出時,記得dumpfile要用%U匹配符,而且並行度不要大於CPU的個數。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26277071/viewspace-714244/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE for aix 11.2.0.1 DATAPUMP expdp之BUG 9470768OracleAI
- 【ASK_ORACLE】重灌Oracle資料泵(Datapump)工具的方法Oracle
- [20220128]Check the datapump file header information in Oracle.txtHeaderORMOracle
- 【DATAPUMP】Oracle資料泵定時備份刪除指令碼Oracle指令碼
- Datapump:EXCLUDE/INCLUDE
- Oracle學習路線Oracle
- Oracle學習總結Oracle
- 【Datapump】Oracle資料泵遷移資料命令參考(expdp/impdp說明)Oracle
- oracle學習筆記《一》Oracle筆記
- 【REDO】Oracle redo undo 學習Oracle Redo
- Oracle學習筆記(6)——函式Oracle筆記函式
- Oracle EBS基礎學習:Oracle EBS啟用診斷功能Oracle
- datapump 匯出匯入ORA-07445
- Oracle體系結構學習筆記Oracle筆記
- 【ASK_ORACLE】刪除DBA_DATAPUMP_JOBS檢視中的異常資料泵JOB的方法Oracle
- 【DATAPUMP】Oracle資料泵優化及提高效率的一些引數介紹Oracle優化
- 學習ORACLE 的入門 (一般流程)Oracle
- 探索資料字典,提高自學習Oracle能力Oracle
- oracle學習筆記(十一) 高階查詢Oracle筆記
- 【BUFFER】Oracle buffer cache之 latch 學習記錄Oracle
- Oracle Haip無法啟動問題學習OracleAI
- Oracle官網文件學習路線導圖Oracle
- DataPump Export (EXPDP) Fails With Error LPX-216 Invalid CharacterExportAIError
- 推薦一個Oracle資料庫學習網站Oracle資料庫學習網站
- Oracle高階培訓 第5課 學習筆記Oracle筆記
- Oracle高階培訓 第6課 學習筆記Oracle筆記
- Oracle高階培訓 第7課 學習筆記Oracle筆記
- oracle學習筆記(十七) PL/SQL高階應用Oracle筆記SQL
- OceanBase學習之路11|體驗 DDL 新特性(Oracle 模式)Oracle模式
- 從 Oracle 日誌解析學習資料庫核心原理Oracle資料庫
- Oracle學習、進階資料合集(含教程、筆記、題庫下載與學習方法分享)Oracle筆記
- MyBatis入門學習-連線oracle實現CURD基本操作MyBatisOracle
- 從零開始學 Oracle 練習題答案(9-10)Oracle
- 資料泵datapump(expdp/impdp)的parfile用法,避免跳脫字元字元
- Oracle練習詳解Oracle
- oracle學習筆記(十五) PL/SQL語法結構以及使用Oracle筆記SQL
- P6學習筆記(Oracle Primavera P6 R17)筆記Oracle
- 深圳軟體測試學習:【資料庫】-【oracle】-連線查詢資料庫Oracle
- 深度學習——學習目錄——學習中……深度學習