物化檢視 VS 匯出/匯入 邏輯資料遷移
物化檢視遷移的所需停機時間遠遠小於EXP/IMP的時間。在利用EXP/IMP進行遷移的時候,很頭痛的一個問題就是匯入、匯出的速度。即使採用10g的新功能資料泵EXPDP/IMPDP,速度仍然是匯出、匯入工具的一個比較致命的缺點。幾百G的資料庫採用EXP/IMP或EXPDP/IMPDP方式,停機時間很可能會超過1天,
這對於很多系統都是無法接受的。而對於物化檢視遷移而言,這就是最大的優勢之一。首先要說的是,物化檢視遷移方式並不能明顯的縮短所需的總時間。但是由於
物化檢視可以進行快速重新整理,因此,可以把完全重新整理的步驟放在停機之前進行,這樣只需要在停機的時候進行一次快速重新整理就可以了,極大的縮短了大資料量資料庫
的遷移時間。
物化檢視遷移和EXP都屬於邏輯遷移:但是EXP方式很難對錶的邏輯結構進行修改。如果提前建立表,並使用IGNORE=Y的方式,可以修改表的物理儲存結果,如改變表空間,改變表的分割槽方式等;如果在EXP的時候指定QUERY引數,可以匯出表中的部分記錄,但是這種方式使用方式很有限,只能針對個別的表,否則就要求QUERY語句中的WHERE條件對匯出所涉及的所有表都生效,對於大部分的情況,這是很難做到的。如果要改變邏輯結果,使用EXP就非常困難了,如果新增新的列還好一些,如果要去掉一些列,用EXP的方式基本上不太可能。而上面提到的所有的修改,對於物化檢視方式來說都不是困難的事情,物化檢視方式可以輕鬆的修改基表的結構,建立物化檢視也可以指定行和列。
當然,物化檢視遷移方式也不是盡善盡美的,這種方式也存在很多的缺點,比如跨版本的bug問題,如果刨除bug不談,那麼物化檢視遷移方式至少會面臨以下問題:
首先,物化檢視遷移是表和資料的遷移,而EXP則是資料庫中所有物件的遷移,因此使用物化檢視遷移方式,必須手工處理索引、約束、過程、觸發器、物件、序列、同義詞、檢視、資料庫鏈以及物件的授權。對於一個大型資料庫環境,這些要手工處理這些工作,工作量可想而知。一個相對簡單的處理方法是,物化檢視與EXP/IMP配合使用,通過EXP匯出所有的物件,只是不包含表中的記錄,表中的記錄通過物化檢視的功能進行同步。不過這樣還需要在物化檢視同步之後,檢查兩個資料庫中所有物件的是否一致,避免丟失源環境中EXP之後做出的修改。總而言之,使用物化檢視遷移方式,遷移的複雜程度要遠遠超過使用EXP的方式。
其次,物化檢視遷移對錶結構有一定的要求。首先,為了保證遷移後目標資料庫中仍然是表,不會變成物化檢視,必須採用ON PREBUILT方式建立物化檢視。而這種方式建立的物化檢視必須是基於主鍵的,這就要求基表必須包括主鍵。對於不包括主鍵的表,是沒有辦法採用物化檢視方式進行遷移的。
物化檢視遷移和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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料泵匯出匯入物化檢視(ORA-39083)
- 物化檢視匯出匯入可能導致物化檢視日誌的失效
- 使用exp/imp匯出匯入資料(邏輯備份恢復)
- [zt]prebuilt 物化檢視遷移資料庫UI資料庫
- EXP邏輯匯出資料的呼叫方式
- 用匯入匯出誇平臺遷移所有資料( Move a Database Between Platforms)DatabasePlatform
- sap遷移 System Copy 匯出匯入on SLES11
- MongoDB 資料遷移 備份 匯入(自用)MongoDB
- Oracle備份與恢復系列 五 邏輯匯入匯出Oracle
- 邏輯匯入匯出和max-allowed-packet的關係
- EBS 10g/11g 資料庫匯出匯入遷移指令碼 - transform資料庫指令碼ORM
- 資料泵匯出匯入
- Oracle 資料匯入匯出Oracle
- mysql資料匯入匯出MySql
- mysql資料匯出匯入MySql
- oracle資料匯入匯出Oracle
- 資料庫邏輯遷移方案資料庫
- Docker容器中的備份、恢復、遷移、匯入、匯出Docker
- 資料庫 MySQL 資料匯入匯出資料庫MySql
- Oracle中exp,imp(匯入匯出)資料遷移注意事項Oracle
- 用exp、imp遷移包含物化檢視日誌的資料
- sqoop資料匯入匯出OOP
- 資料匯入匯出EXP/IMP
- MongoDB資料匯入與匯出MongoDB
- mysqldump匯入匯出表資料MySql
- exp/imp匯出匯入資料
- postgresql 資料匯入和匯出SQL
- 資料庫的匯入匯出資料庫
- 資料泵的匯入匯出
- mysql 資料庫匯入匯出MySql資料庫
- 資料泵匯出匯入表
- MySQL資料庫匯入匯出MySql資料庫
- 通過cmd視窗匯入匯出mysql資料庫MySql資料庫
- Oracle資料庫匯入匯出。imp匯入命令和exp匯出命令Oracle資料庫
- Oracle資料庫資料遷移或匯出匯入(exp/imp,dblink)應該注意的點(總結)Oracle資料庫
- MySQL入門--匯出和匯入資料MySql
- 從零自學Hadoop(16):Hive資料匯入匯出,叢集資料遷移上HadoopHive
- 從零自學Hadoop(17):Hive資料匯入匯出,叢集資料遷移下HadoopHive