oracle 各種遷移總結

aaqwsh發表於2012-11-07

最近做了很多遷移,本來想有空寫個oracle 各種遷移總結,但是發現我同事已經寫了,就偷懶一下。下面是我同事的一個總結,我先摘錄一下,然後在補充一下:

http://www.vmcd.org/2012/10/lob%e5%ad%97%e6%ae%b5%e8%bf%81%e7%a7%bb%e6%b5%85%e8%b0%88/
最近做了一次文描系統的遷移,涉及到大量的lob,對於這種文描表的處理,其實不建議放在oracle lob欄位中.對於LOB相信大家肯定遇到過各種問題

LOB
的直接讀寫往往會對儲存層面造成很大的壓力,瞬間的併發嚴重的可能導致系統的崩潰.相信維護過秒殺系統的同學深有感觸。

鑑於這次的遷移.總結了一點經驗,對於文描這種應用(圖書,藥物等)首先應該考慮檔案系統,在資料庫層面通過指標來訪問,其次可以考慮nosql的應用
(
推薦mongodb),對於這次的遷移來說考慮了一下幾種方式:

示例表為:

[oracle@db-2-16 ~]$

OWNER TABLE_NAME SIZE_MB
—————————— —————————— ————
PROD_DATA2 PDDESC 78,165

這是一張將近80GBlob (pddesc column nclob)

SQL> select segment_name from dba_lobs where table_name=’PDDESC’;

SEGMENT_NAME
——————————
SYS_LOB0000017343C00008$$

SQL> select sum(bytes)/1024/1024 from dba_segments where segment_name=’SYS_LOB0000017343C00008$$’;

SUM(BYTES)/1024/1024
——————–
74117

LOB欄位大小為74GB

對於這種表考慮了第一種方法:oracle goldengate

想通過ogg單獨抽這種表,由於這次遷移是10g-11g ogg正好有用武之地,測試發現ogg的初始化極其緩慢(老毛病了) 放棄 同理測試DDS DSG 同樣很慢。

方法二:採用了expdp 使用parallel 8 方式匯出預計需要5個小時以上 放棄 採用exp query PK mod=8 預計8小時以上 放棄。

方法三:採用CTAS 通過dblink方式 這種方法的好處是節省了傳輸的時間,直接在目標端進行資料的插入注意這種方式有一個要求不能夠直接create table as select 這也跟kamus討論過,DDL parallel 是不支援LOB欄位的表的:

DDL statements

Some examples are CREATE TABLE AS SELECT,CREATE INDEX,REBUILD INDEX,REBUILD INDEX PARTITION and MOVE/SPLI/COALESCE PARTITION.

You can normally use parallel DDL where you use regular DDL. There are, however, some additional details to consider when designing your database.

One important restriction is that parallel DDL cannot be used on tables with object or LOB columns.

All of these DDL operations can be performed in NOLOGGINGmode for either parallel or serial execution.

The CREATE TABLE statement for an index-organized table can be parallelized either with or without an AS SELECT clause.

Different parallelism is used for different operations.Parallel create (partitioned) table as select and parallel create (partitioned) index run with a degree of parallelism equal to the number of partitions.

採用手工insert append的方式將主鍵分為20個分割槽.多個SQL 同時插入這種方式預估時間為2個小時,是可以接受的。

方法四:利用prebuild MV快速遷移這是最便宜也是最省心的(當然如果你的ogg不需要收費的話..) 這種方法可以參考楚天的文章:
利用prebuild MV快速遷移跨平臺資料庫實施及其總結
測試結果為complete refresh 花了將近8個小時。不過一旦初始化完成,後面將大大簡化遷移時候的操作,只需要dropmv即可。

方法五: 也是我們最終採用的PCIE卡直接抽取 flash技術在公司已經大量運用了.具體操作為搭建一個檔案存放在fusion-IO上的物理DG,遷移停機之後active這個DG 使用expdp匯出這張表。驚訝的是匯出這張表僅僅只需要20分鐘,強大的fusion-io!
同樣測試了華為的超高速SSD 表現還可以需要40分鐘左右。這種方法的好處在於物理DG十分的可靠,在遷移之前可以最大劃的保證資料的完整性(ogg,mv可能丟資料) 這樣就省去了表資料的對比工作,同樣20分鐘的表現完全可以接受。

這裡大致談了lob欄位的遷移方法,其實對於lob欄位的運用關鍵還在於設計。在大資料即將到來的今天,合理的運用各種技術才是最重要的。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/758322/viewspace-748523/,如需轉載,請註明出處,否則將追究法律責任。

相關文章