曠日持久的資料遷移總結
下午完成了曠日持久的單例項跨版本oracle資料遷移任務,本來是兩個schema逐步在分類指令碼中進行(先expdp表結構,再是資料,再是索引約束,再是其他資料庫物件),由於沒有使用並行,兩個任務一起處理,出現了不少問題(無故出現impdp表資料翻倍現象,索引約束違背問題,還有cluster引起的問題).其實資料不是很大,兩個schema加起來就20G的樣子,針對上面出現的繁瑣離奇問題處理時真心糾結,有點拆東牆補西牆的窘境。
後來,看到網上有朋友就分兩步,先是資料和其他DB物件,然後是索引約束,其建議是如果想提升速度,最好將資料與索引約束分開,由於我們資料不是很大,就一起expdp了,結果這樣下來幾乎沒遇到什麼問題,就是由於資料庫版本差異,導致幾個package body失效的問題,最後查明是由於db_link的問題,後來也輕鬆處理了。
接著,遷移完成後的善後工作:重新編譯schema資訊,重新收集DB統計資訊。
最後,總結這次遷移心得體會如下:
(1)遷移前的流程得事先想明白,會遇到的問題需要儘可能多的有預見性處理,還有就是效率和最佳化的問題;
(2)一條路走不通時可以換個思路嘗試新的方法,說不定可以高效解決你的問題,當然一切都是在實踐前提下進行;
(3)最後,感覺遷移完成後的善後三項工作很重要也很實用,貼出來,分享給大家:
--->>遷移後對比目標庫和源庫資料庫物件類別和資料:
SQL> select object_type,count(*) cnt from dba_objects where owner='AAA' GROUP BY OBJECT_TYPE;
外網14環境統計資訊 RAC環境統計資訊
OBJECT_TYPE CNT OBJECT_TYPE CNT
------------------- ---------- ------------------- ----------
TABLE SUBPARTITION 850 TABLE SUBPARTITION 850
INDEX PARTITION 72 INDEX PARTITION 72
TABLE PARTITION 98 TABLE PARTITION 98
SEQUENCE 47 SEQUENCE 47
PROCEDURE 1 PROCEDURE 1
DATABASE LINK 1 DATABASE LINK 1
PACKAGE 15 PACKAGE 15
PACKAGE BODY 13 PACKAGE BODY 13
TRIGGER 38 TRIGGER 38
INDEX 116 INDEX 116
TABLE 131 TABLE 130
VIEW 11 VIEW 11
FUNCTION 7 FUNCTION 7
SYNONYM 40 SYNONYM 40
CLUSTER 3 CLUSTER 3
TYPE 3 TYPE 3
16 rows selected 16 rows selected
---->>遷移後重新編譯schema資訊:
begin
dbms_utility.COMPILE_SCHEMA(AAA);
end;
/
---->>遷移後查詢失效DB物件:
SQL> select t2.owner,t2.object_name,t2.object_type from all_objects t2 where owner in (AAA) and status='INVALID';
OWNER OBJECT_NAME OBJECT_TYPE
------------------------------ ------------------------------ -------------------
FLTF FLT_PSF PACKAGE BODY
FLTF FLT_STATF PACKAGE BODY
FLTF FLT_DATA_STAT_PROXYF PACKAGE BODY
----->>遷移後重新收集schema統計資訊:
BEGIN
DBMS_STATS.GATHER_SCHEMA_STATS(OWNNAME => 'FFF',
ESTIMATE_PERCENT => DBMS_STATS.AUTO_SAMPLE_SIZE,
METHOD_OPT => 'FOR ALL COLUMNS SIZE 1',
DEGREE => 32);
END;
(4)貼出expdp和impdp指令碼供參考:
Expdp_all_bus.sh----->>
expdp aaa/bbb DIRECTORY=expdp_dir DUMPFILE=expdp_all_man%U.dump filesize=6G CONTENT=all logfile=expdp_all_bus_parallel.log parallel=3 SCHEMAS=AAA version=10.2.0.1.0 exclude=table_statistics,index_statistics;
Impdp_all_bus.sh----->>
impdp BBB/CCC DIRECTORY=impdp_dir DUMPFILE=expdp_all_bus%U.dump CONTENT=all logfile=impdp_all_bus_parallel.log parallel=3 SCHEMAS=DDD version=10.2.0.1.0;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29119536/viewspace-1103705/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Datapump資料遷移的實踐總結
- 資料遷移部分問題總結
- GoldenGate資料遷移的問題總結(一)Go
- GoldenGate資料遷移的問題總結(二)Go
- 資料整合式遷移的一些總結
- 資料遷移中的幾個問題總結
- 大型資料庫跨平臺遷移總結資料庫
- 資料遷移(1)——通過資料泵表結構批量遷移
- 海量資料遷移之一個誤操作的問題總結
- 通過impdp做資料庫遷移遇到的問題總結資料庫
- 資料的遷移
- oracle 各種遷移總結Oracle
- 遷移資料.
- 【遷移】使用rman遷移資料庫資料庫
- 1.1資料庫物件結構遷移方法資料庫物件
- 【資料遷移】使用傳輸表空間遷移資料
- 伺服器資料遷移的方法-硬體不同如何遷移資料伺服器
- Kafka資料遷移Kafka
- 資料庫遷移資料庫
- redis資料遷移Redis
- 轉資料遷移
- ORACLE 資料遷移Oracle
- DXWB 資料遷移
- Harbor資料遷移
- 資料檔案的遷移
- 用exp、imp遷移包含物化檢視日誌的資料
- 【資料遷移】RMAN遷移資料庫到ASM(三)遷移onlinelog等到ASM資料庫ASM
- Core Data 版本遷移經驗總結
- Oracle跨平臺遷移的簡單總結Oracle
- datapump跨平臺升級遷移的總結
- 生產環境資料遷移問題彙總
- Oracle資料庫中資料行遷移與行連結Oracle資料庫
- Oracle資料庫資料遷移或匯出匯入(exp/imp,dblink)應該注意的點(總結)Oracle資料庫
- 資料庫檔案的遷移資料庫
- 不同的default tablespace資料遷移
- ABP8.1的資料遷移
- gitlab資料遷移Gitlab
- 資料庫遷移 :理解資料庫