物化檢視 VS 匯出/匯入 邏輯資料遷移

Jujay發表於2011-12-15
    物化檢視遷移的所需停機時間遠遠小於EXP/IMP的時間。在利用EXP/IMP進行遷移的時候,很頭痛的一個問題就是匯入、匯出的速度。即使採用10g的新功能資料泵EXPDP/IMPDP,速度仍然是匯出、匯入工具的一個比較致命的缺點。幾百G的資料庫採用EXP/IMPEXPDP/IMPDP方式,停機時間很可能會超過1天, 這對於很多系統都是無法接受的。而對於物化檢視遷移而言,這就是最大的優勢之一。首先要說的是,物化檢視遷移方式並不能明顯的縮短所需的總時間。但是由於 物化檢視可以進行快速重新整理,因此,可以把完全重新整理的步驟放在停機之前進行,這樣只需要在停機的時候進行一次快速重新整理就可以了,極大的縮短了大資料量資料庫 的遷移時間。
   
物化檢視遷移和EXP都屬於邏輯遷移:但是EXP方式很難對錶的邏輯結構進行修改。如果提前建立表,並使用IGNORE=Y的方式,可以修改表的物理儲存結果,如改變表空間,改變表的分割槽方式等;如果在EXP的時候指定QUERY引數,可以匯出表中的部分記錄,但是這種方式使用方式很有限,只能針對個別的表,否則就要求QUERY語句中的WHERE條件對匯出所涉及的所有表都生效,對於大部分的情況,這是很難做到的。如果要改變邏輯結果,使用EXP就非常困難了,如果新增新的列還好一些,如果要去掉一些列,用EXP的方式基本上不太可能。而上面提到的所有的修改,對於物化檢視方式來說都不是困難的事情,物化檢視方式可以輕鬆的修改基表的結構,建立物化檢視也可以指定行和列。
   
當然,物化檢視遷移方式也不是盡善盡美的,這種方式也存在很多的缺點,比如跨版本的bug問題,如果刨除bug不談,那麼物化檢視遷移方式至少會面臨以下問題:
   
首先,物化檢視遷移是表和資料的遷移,而EXP則是資料庫中所有物件的遷移,因此使用物化檢視遷移方式,必須手工處理索引、約束、過程、觸發器、物件、序列、同義詞、檢視、資料庫鏈以及物件的授權。對於一個大型資料庫環境,這些要手工處理這些工作,工作量可想而知。一個相對簡單的處理方法是,物化檢視與EXP/IMP配合使用,通過EXP匯出所有的物件,只是不包含表中的記錄,表中的記錄通過物化檢視的功能進行同步。不過這樣還需要在物化檢視同步之後,檢查兩個資料庫中所有物件的是否一致,避免丟失源環境中EXP之後做出的修改。總而言之,使用物化檢視遷移方式,遷移的複雜程度要遠遠超過使用EXP的方式。
   
其次,物化檢視遷移對錶結構有一定的要求。首先,為了保證遷移後目標資料庫中仍然是表,不會變成物化檢視,必須採用ON PREBUILT方式建立物化檢視。而這種方式建立的物化檢視必須是基於主鍵的,這就要求基表必須包括主鍵。對於不包括主鍵的表,是沒有辦法採用物化檢視方式進行遷移的。

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

相關文章