用資料泵併發匯入資料的一個案例
本案例演示了用oracle11g的資料泵impdp工具匯入資料,使用併發功能。要解決的問題是:1.什麼情況下開併發匯入效率有明顯的提升?2.在匯入的過程怎麼樣監控資料泵impdp匯入資料的?
本次匯入檔案是1G,匯入資料不多。資料檔案放在openfiler的儲存中,寫入很慢,所以開併發匯入。匯入語句為:
impdp system/123456@test66 PARALLEL=4 job_name=job_test66_import logfile=test3320160424user10bak.log dumpfile=test3320160422user10bak.dmpdp version=11.2.0.1.0 schemas=RISK,POS,INF,PE,POSJK,ACC,FO,INTRA,FI
其中 parallel為4,job_name為job_test66_import。開始匯入。
回答第二個問題:怎麼樣監控?資料泵支援互動模式,附加attach引數的方式重新連線到中斷的任務中,並選擇後續的操作。 這就是互動方式。 在另外一個shell視窗,另外一個shel視窗監控:
impdp system/123456@test66 attach=JOB_TEST66_IMPORT,看到如下內容:
Job: JOB_TEST66_IMPORT
Owner: SYSTEM
Operation: IMPORT
Creator Privs: TRUE
GUID: 3448DAD136BF201EE0534F0010AC90E6
Start Time: Thursday, 02 June, 2016 17:01:42
Mode: SCHEMA
Instance: test66
Max Parallelism: 4
EXPORT Job Parameters:
CLIENT_COMMAND system/********@TEST33-172.16.0.97 COMPRESSION=all logfile=test3320160422user10bak.log dumpfile=test3320160422user10bak.dmpdp version=11.2.0.1.0 schemas=RISK,POS,INF,PE,FI,POSJK,VAS,ACC,FO,INTRA
COMPRESSION ALL
IMPORT Job Parameters:
Parameter Name Parameter Value:
CLIENT_COMMAND system/********@test66 PARALLEL=4 job_name=job_test66_import logfile=test3320160424user10bak.log dumpfile=test3320160422user10bak.dmpdp version=11.2.0.1.0 schemas=RISK,POS,INF,PE,POSJK,ACC,FO,INTRA,FI
State: EXECUTING
Bytes Processed: 289,480,112
Percent Done: 29
Current Parallelism: 4
Job Error Count: 0
Dump File: /u01/app/oracle/admin/test66/dpdump/test3320160422user10bak.dmpdp
Worker 1 Status:
Process Name: DW00
State: EXECUTING
Object Schema: FI
Object Name: GATEWAY_REQUEST
Object Type: SCHEMA_EXPORT/TABLE/TABLE_DATA
Completed Objects: 1
Completed Rows: 186,259
Completed Bytes: 349,938,120
Percent Done: 35
Worker Parallelism: 1
Worker 2 Status:
Process Name: DW01
State: EXECUTING
Object Schema: INF
Object Name: T_REQUEST_INFO_CONTENT
Object Type: SCHEMA_EXPORT/TABLE/TABLE_DATA
Completed Objects: 1
Completed Rows: 730,691
Completed Bytes: 316,879,688
Percent Done: 69
Worker Parallelism: 1
Worker 3 Status:
Process Name: DW02
State: EXECUTING
Object Schema: INTRA
Object Name: ACCESS_LOG
Object Type: SCHEMA_EXPORT/TABLE/TABLE_DATA
Completed Objects: 9
Completed Bytes: 2,986,168
Worker Parallelism: 1
Worker 4 Status:
Process Name: DW03
State: EXECUTING
Object Schema: RISK
Object Name: TRADE_MONITOR
Object Type: SCHEMA_EXPORT/TABLE/TABLE_DATA
Completed Objects: 4
Completed Rows: 370,103
Completed Bytes: 4,109,392
Percent Done: 100
Worker Parallelism: 1
可以看到有4個worker,每個worker是不同的使用者。我猜想,每一個worker,就是作業系統一個執行緒。這樣我們就明白了:資料泵併發匯入是不同使用者可以併發匯入data。這就回答了第一個問題,如果有多個使用者匯入資料,那麼可以考慮用併發同時匯入資料。在深入點,理論上來說,資料庫主機有幾個邏輯CPU,就可以開幾個併發匯入.實際上,假設匯入的使用者是一個,其他執行緒(也就是上面的worker)只能wait,因為幫不上忙,一個使用者只能順序匯入data。也就是說,併發匯入能不能有效果,由匯入的使用者情況,以及硬體cpu的支援。
結果很滿意:這次是5分鐘匯入完成。我之前匯入一次這個檔案,沒有用併發,用了一個小時,(不要笑話我匯入速度慢,因為openfiler儲存真心很慢,我在ASM分配一個8G的diskgroup,用了13分鐘。)
本次匯入檔案是1G,匯入資料不多。資料檔案放在openfiler的儲存中,寫入很慢,所以開併發匯入。匯入語句為:
impdp system/123456@test66 PARALLEL=4 job_name=job_test66_import logfile=test3320160424user10bak.log dumpfile=test3320160422user10bak.dmpdp version=11.2.0.1.0 schemas=RISK,POS,INF,PE,POSJK,ACC,FO,INTRA,FI
其中 parallel為4,job_name為job_test66_import。開始匯入。
回答第二個問題:怎麼樣監控?資料泵支援互動模式,附加attach引數的方式重新連線到中斷的任務中,並選擇後續的操作。 這就是互動方式。 在另外一個shell視窗,另外一個shel視窗監控:
impdp system/123456@test66 attach=JOB_TEST66_IMPORT,看到如下內容:
Job: JOB_TEST66_IMPORT
Owner: SYSTEM
Operation: IMPORT
Creator Privs: TRUE
GUID: 3448DAD136BF201EE0534F0010AC90E6
Start Time: Thursday, 02 June, 2016 17:01:42
Mode: SCHEMA
Instance: test66
Max Parallelism: 4
EXPORT Job Parameters:
CLIENT_COMMAND system/********@TEST33-172.16.0.97 COMPRESSION=all logfile=test3320160422user10bak.log dumpfile=test3320160422user10bak.dmpdp version=11.2.0.1.0 schemas=RISK,POS,INF,PE,FI,POSJK,VAS,ACC,FO,INTRA
COMPRESSION ALL
IMPORT Job Parameters:
Parameter Name Parameter Value:
CLIENT_COMMAND system/********@test66 PARALLEL=4 job_name=job_test66_import logfile=test3320160424user10bak.log dumpfile=test3320160422user10bak.dmpdp version=11.2.0.1.0 schemas=RISK,POS,INF,PE,POSJK,ACC,FO,INTRA,FI
State: EXECUTING
Bytes Processed: 289,480,112
Percent Done: 29
Current Parallelism: 4
Job Error Count: 0
Dump File: /u01/app/oracle/admin/test66/dpdump/test3320160422user10bak.dmpdp
Worker 1 Status:
Process Name: DW00
State: EXECUTING
Object Schema: FI
Object Name: GATEWAY_REQUEST
Object Type: SCHEMA_EXPORT/TABLE/TABLE_DATA
Completed Objects: 1
Completed Rows: 186,259
Completed Bytes: 349,938,120
Percent Done: 35
Worker Parallelism: 1
Worker 2 Status:
Process Name: DW01
State: EXECUTING
Object Schema: INF
Object Name: T_REQUEST_INFO_CONTENT
Object Type: SCHEMA_EXPORT/TABLE/TABLE_DATA
Completed Objects: 1
Completed Rows: 730,691
Completed Bytes: 316,879,688
Percent Done: 69
Worker Parallelism: 1
Worker 3 Status:
Process Name: DW02
State: EXECUTING
Object Schema: INTRA
Object Name: ACCESS_LOG
Object Type: SCHEMA_EXPORT/TABLE/TABLE_DATA
Completed Objects: 9
Completed Bytes: 2,986,168
Worker Parallelism: 1
Worker 4 Status:
Process Name: DW03
State: EXECUTING
Object Schema: RISK
Object Name: TRADE_MONITOR
Object Type: SCHEMA_EXPORT/TABLE/TABLE_DATA
Completed Objects: 4
Completed Rows: 370,103
Completed Bytes: 4,109,392
Percent Done: 100
Worker Parallelism: 1
可以看到有4個worker,每個worker是不同的使用者。我猜想,每一個worker,就是作業系統一個執行緒。這樣我們就明白了:資料泵併發匯入是不同使用者可以併發匯入data。這就回答了第一個問題,如果有多個使用者匯入資料,那麼可以考慮用併發同時匯入資料。在深入點,理論上來說,資料庫主機有幾個邏輯CPU,就可以開幾個併發匯入.實際上,假設匯入的使用者是一個,其他執行緒(也就是上面的worker)只能wait,因為幫不上忙,一個使用者只能順序匯入data。也就是說,併發匯入能不能有效果,由匯入的使用者情況,以及硬體cpu的支援。
結果很滿意:這次是5分鐘匯入完成。我之前匯入一次這個檔案,沒有用併發,用了一個小時,(不要笑話我匯入速度慢,因為openfiler儲存真心很慢,我在ASM分配一個8G的diskgroup,用了13分鐘。)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30393770/viewspace-2113436/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 限定filesize的資料泵匯入匯出操作案例
- 資料泵的匯入匯出
- 資料泵匯出匯入
- Impdp資料泵匯入
- 資料泵取匯出和匯入(一)
- 使用資料泵impdp匯入資料
- 資料泵匯出匯入表
- 資料泵匯出匯入資料標準文件
- Oracle資料泵的匯入和匯出Oracle
- Oracle資料泵-schema匯入匯出Oracle
- 資料泵避免個別表資料的匯出
- 資料泵IMPDP 匯入工具的使用
- 資料泵無法匯入JOB
- Oracle資料泵匯出匯入(expdp/impdp)Oracle
- Oracle使用資料泵匯出匯入表Oracle
- 資料泵避免個別表資料的匯出(二)
- Oracle使用資料泵expdp,impdp進行資料匯出匯入Oracle
- 資料庫泵(expdp/impdp)匯入匯出流程資料庫
- 12c 資料泵匯入匯出級別
- 10g資料泵和匯入匯出效能對比(一)
- 【資料泵】EXPDP匯出表結構(真實案例)
- Oracle用資料泵匯入資料包12899的錯誤碼解決方法Oracle
- 【匯入匯出】資料泵 job_name引數的使用
- 對比資料泵與原始匯入匯出工具(五)
- 對比資料泵與原始匯入匯出工具(四)
- 對比資料泵與原始匯入匯出工具(三)
- 對比資料泵與原始匯入匯出工具(八)
- 對比資料泵與原始匯入匯出工具(七)
- 對比資料泵與原始匯入匯出工具(六)
- Oracle使用資料泵在異機之間匯出匯入多個 schemaOracle
- 使用資料泵工具expdp工具匯出資料
- 資料泵匯出資料包錯處理
- oracle監控資料泵匯入和匯出的sql語句OracleSQL
- 12c pdb的資料泵匯入匯出簡單示例
- 資料泵過濾匯出資料的where條件
- 資料泵匯入-在物件已存在的情況下執行匯入物件
- 資料泵 EXPDP 匯出工具的使用
- 資料泵匯出匯入物化檢視(ORA-39083)