exp/imp遷移大表(大小11個G)的疑惑?請指教(已解決)
exp/imp遷移大表(大小11個G)的疑惑?請指教
目前手中有一個工作是將一個大表,但是我估算了一下需要100小時,這個時間我是不能接受的,不知道有沒有這方面經驗的朋友可以一起討論
一下。
相關資訊如下:
資料庫版本:9.2.0.4
匯出資料庫:db1
匯入資料庫:db2
邏輯匯出語句如下:
exp user1/password@db1 file=TABLE1.dmp log=TABLE1.log tables=table1 buffer=10485760 constraints=n compress=n statistics=none
imdexes=n triggers=n grants=n
邏輯匯入語句如下:
imp user1/password@db1 file=TABLE1.dmp log=TABLE1.log ignore=y full=y constraints=n grants=n buffer=10485760 commit=y
1.回滾段確認:30G,imp匯入時加了引數commit=y,控制回滾段無限的加大
2.臨時表空間大小確認:62G
3.記憶體大小確認:127G
4.CPU顆數:32顆
5.有足夠的歸檔空間
6.使用者表空間足夠大
7.TABLE1段大小為:1.1010E+10 (11G)
8.TABLE1有98258468(1億)條資料
9.匯出後的TABLE1.dmp檔案大小為8.1G
我的問題:
1.大概跟蹤了一下進度,複製的效率開始時是在100萬條記錄/小時,按照這個速度需要4.1天的時間才能完全匯入,不能夠接受的時間長度,有
沒有提高效能的方法呢?
2.我是在歸檔模式下進行的匯入,不過設定成非歸檔是否會快一些?
3.對應的索引沒有禁止,這個表上有四個索引,其中一個為主鍵索引,如果禁掉索引以及約束會不會提高速度?
4.在imp匯入過程中,索引表空間會不會增大,這個沒有監控出來?
5.imp的原理是什麼?是轉換成sql的insert語句進行插入麼?按照我的設定,是否是每插入10M的資料就會進行提交一次?
6.9.2.0.4版本的imp可以增加並行度麼?(如果能請給出方法,目前沒有找到相應的引數)
我發現,就是現在,好像資料匯入到第3735438條時,停止了,不知道為什麼,難道在大小上有什麼限制,或者有什麼類似死鎖的事情發生?
徹底被這個任務擊沉了!有朋友有過遷移大表的經驗麼?請指導,非常感謝。
======================================================
======================================================
問題已經解決,感謝大家的幫助。在去掉索引和約束後,速度驚人!超快的完成了任務,不過在重新建立索引和加約束時很是用時。
結果證明:經驗很重要!
經驗總結
技術經驗總結:
1.根本問題是:沒有將目標端的索引和約束全部去掉,估計是在不停的插入過程中一直在掃描索引,具體的原理還得深入研究;
2.在回滾段夠大的情況下,可以不用加commit=y引數,頻繁的提交會影響效率;
3.在表比較小的情況下可以考慮使用DBLINK遷移;
4.在遷移的過程中時刻注意各種空間是否夠用(包括redolog,archivelog,undo segment,temp tablespace);
5.查詢是否有其他的因素干擾任務的進展,我的任務中就是因為after類的trigger給我添亂不少;
6.多google,多查詢,只有遇到問題,思考問題,解決問題才能迅速的提高。
工作經驗總結:
2.還是應該對手中的任務好好研究一下,定一個,考慮周全後在定使用什麼方式;
3.多向老DBA取經,不管問題多麼簡單,大家都有這麼一個過程;
4.遇到問題不可盲目的慌張,慢啟動才能快完成!
5.認真做好工作完成後的總結工作。
最後,感謝各位同行、各位朋友的幫助。
[ 本帖最後由 secooler 於 2007-12-3 21:53 編輯 ]
目前手中有一個工作是將一個大表,但是我估算了一下需要100小時,這個時間我是不能接受的,不知道有沒有這方面經驗的朋友可以一起討論
一下。
相關資訊如下:
資料庫版本:9.2.0.4
匯出資料庫:db1
匯入資料庫:db2
邏輯匯出語句如下:
exp user1/password@db1 file=TABLE1.dmp log=TABLE1.log tables=table1 buffer=10485760 constraints=n compress=n statistics=none
imdexes=n triggers=n grants=n
邏輯匯入語句如下:
imp user1/password@db1 file=TABLE1.dmp log=TABLE1.log ignore=y full=y constraints=n grants=n buffer=10485760 commit=y
1.回滾段確認:30G,imp匯入時加了引數commit=y,控制回滾段無限的加大
2.臨時表空間大小確認:62G
3.記憶體大小確認:127G
4.CPU顆數:32顆
5.有足夠的歸檔空間
6.使用者表空間足夠大
7.TABLE1段大小為:1.1010E+10 (11G)
8.TABLE1有98258468(1億)條資料
9.匯出後的TABLE1.dmp檔案大小為8.1G
我的問題:
1.大概跟蹤了一下進度,複製的效率開始時是在100萬條記錄/小時,按照這個速度需要4.1天的時間才能完全匯入,不能夠接受的時間長度,有
沒有提高效能的方法呢?
2.我是在歸檔模式下進行的匯入,不過設定成非歸檔是否會快一些?
3.對應的索引沒有禁止,這個表上有四個索引,其中一個為主鍵索引,如果禁掉索引以及約束會不會提高速度?
4.在imp匯入過程中,索引表空間會不會增大,這個沒有監控出來?
5.imp的原理是什麼?是轉換成sql的insert語句進行插入麼?按照我的設定,是否是每插入10M的資料就會進行提交一次?
6.9.2.0.4版本的imp可以增加並行度麼?(如果能請給出方法,目前沒有找到相應的引數)
我發現,就是現在,好像資料匯入到第3735438條時,停止了,不知道為什麼,難道在大小上有什麼限制,或者有什麼類似死鎖的事情發生?
徹底被這個任務擊沉了!有朋友有過遷移大表的經驗麼?請指導,非常感謝。
======================================================
======================================================
問題已經解決,感謝大家的幫助。在去掉索引和約束後,速度驚人!超快的完成了任務,不過在重新建立索引和加約束時很是用時。
結果證明:經驗很重要!
經驗總結
技術經驗總結:
1.根本問題是:沒有將目標端的索引和約束全部去掉,估計是在不停的插入過程中一直在掃描索引,具體的原理還得深入研究;
2.在回滾段夠大的情況下,可以不用加commit=y引數,頻繁的提交會影響效率;
3.在表比較小的情況下可以考慮使用DBLINK遷移;
4.在遷移的過程中時刻注意各種空間是否夠用(包括redolog,archivelog,undo segment,temp tablespace);
5.查詢是否有其他的因素干擾任務的進展,我的任務中就是因為after類的trigger給我添亂不少;
6.多google,多查詢,只有遇到問題,思考問題,解決問題才能迅速的提高。
工作經驗總結:
2.還是應該對手中的任務好好研究一下,定一個,考慮周全後在定使用什麼方式;
3.多向老DBA取經,不管問題多麼簡單,大家都有這麼一個過程;
4.遇到問題不可盲目的慌張,慢啟動才能快完成!
5.認真做好工作完成後的總結工作。
最後,感謝各位同行、各位朋友的幫助。
[ 本帖最後由 secooler 於 2007-12-3 21:53 編輯 ]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-555636/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大表exp/imp遷移
- exp,imp 遷移資料
- imp/exp資料遷移
- 誇平臺多個schame資料遷移(exp,imp)
- 通過oracle10g exp/imp在不同表空間間遷移資料Oracle
- EXP,IMP遷移資料庫的時候註釋亂碼解決方法資料庫
- nosql實體的疑惑,請指教SQL
- exp_imp_遷移_同使用者_不同表空間的小記
- oracl11g下exp_imp匯入已經存在表或其它物件的使用者物件
- EXP_IMP與dblink資料遷移案例比照
- imp 11g的exp檔案到10g庫(IMP-00010)
- 大物件(blob)表或分割槽表的exp和imp物件
- 用exp、imp遷移包含物化檢視日誌的資料
- Oracle 11g 使用exp命令匯出表不全的解決方案Oracle
- 解決Oracle 11g空表不能exp匯出的問題Oracle
- 11g exp匯出時部分表導不出來的解決
- Oracle11g用exp無法匯出空表的解決方法Oracle
- exp/imp和expdp/imp在跨使用者邏輯遷移資料時的差異
- Oracle的exp、imp的資料遷移步驟Oracle
- Oracle的exp/imp詳解Oracle
- 解決:ORACLE 11G使用exp無法導空出表問題Oracle
- Oracle 11G用EXP時,空表不能匯出解決方法Oracle
- exp和imp詳解
- exp/imp命令詳解
- [20140827]imp exp 使用管道遷移資料.txt
- BIEE 11g遷移
- 利用exp/imp變換普通表為分割槽表_10g_windowsWindows
- 10g升級至11g exp的問題解決
- 使用exp/imp來移動表空間到另一個資料庫中的例子資料庫
- Oracle11g中用exp不能匯出空表,異構平臺遷移可以使用expdp、impdpOracle
- 如何優化10g exp/imp優化
- oracle 10g imp/exp IMPDP/EXPDPOracle 10g
- exp,imp 不同表空間大欄位處理方法
- 解決0racle11G 匯出表的問題 EXP-00011: 不存在 .
- [20140828]imp exp 使用管道遷移資料(補充)
- imp/exp命令 詳解(1)
- 【imp】使用imp工具遷移資料時迂迴地排除特定表的匯入
- Oracle 傳輸表空間-EXP/IMPOracle