轉帖:ORACLE數(shù)據(jù)倉庫備份方案分析
ORACLE數(shù)據(jù)倉庫備份方案分析 數(shù)據(jù)倉庫環(huán)境,ORACLE RAC,100T數(shù)據(jù),每日歸檔那個量5T(對于不需要產生備份的數(shù)據(jù),已經采用了nologging方式,以減少歸檔數(shù)量),如何制定備份和恢復方案? 方案一:DataGuard DataGuard是性價比最高的備份和容災方案,但是當歸檔超過一定規(guī)模之后,DG的恢復就成為了瓶頸,每天產生的歸檔無法及時恢復完,我們也嘗 試過很多調優(yōu)的方法,包括并行恢復,都無法解決,恢復的瓶頸不在存儲的吞吐量,而在于standby的恢復方式,因為恢復的過程就是應用歸檔文件,RAC 各個節(jié)點產生的歸檔必須在一個節(jié)點恢復,這個過程必須是遵循一定順序的,大大限制了恢復的并發(fā)速度。 方案二:傳統(tǒng)RMAN備份 采用傳統(tǒng)RMAN備份,采用大吞吐量的虛擬帶庫設備,一周全備一次,每天備歸檔日志。很多時候,我們在做備份方案時,只考慮了備份,卻沒有考慮恢 復。這個方案最大的問題就在于:恢復的代價非常高,一旦數(shù)據(jù)庫出現(xiàn)問題,恢復可能需要數(shù)天之久,這是無法接受的。另外,還要額外購買備份設備。 方案三:存儲鏡像 數(shù)據(jù)庫采用noarchivelog模式,采用ASM鏡像兩套存儲。這個方案并不是備份方案,只是為了解決存儲的單點問題而提出的,相當于對不同的 存儲做RAID 1。這個方案最大的問題是無法解決數(shù)據(jù)庫邏輯錯誤,比如誤刪除數(shù)據(jù)。因為主庫和備庫通過存儲鏡像來實現(xiàn),無法實現(xiàn)異地備份和容災。 方案四:存儲級別復制 采用存儲級別的復制,各存儲廠家都有解決方案,比如EMC SRDF等。Veritas也有類似的解決方案,比如卷復制(VERITAS Volume Replicator)。這種方案的基本原理都是通過捕獲底層存儲的IO,并通過網絡同步到備份系統(tǒng)上。如果采用存儲廠商的方案,那么主備庫就必須使用同 一家公司的產品,而且,能否承受每天4.5T的數(shù)據(jù)變化量,我們并沒有驗證過。另外,軟件license費用不菲。 有人說:能用錢解決的問題不是問題??墒?,問題是沒錢!Alibaba雖然不缺錢,但是我們的目標就是花小錢辦大事。我個人也不推薦使用存儲廠商的解決方案,這不僅僅是錢的問題,而是這種方案基本上就是個黑盒,我們還是喜歡更簡單開放的解決方案。 既然ORACLE DG是性價比最高的備份和容災方案,我們還是想通過DG來解決這個問題。DG的好處在于可以隨時打開備份,驗證有效,standby延遲恢復還可以解決邏 輯錯誤,防范ORACLE軟件bug可能帶來的損失。解決方案的核心就是要解決DG恢復速度慢的問題。 方案五:ORACLE DG+塊級別增量備份/恢復+歸檔 從10g開始,ORACLE提供了一個功能:塊改變跟蹤(block change tracking),通過bitmap記錄block的變化,通過這個塊改變跟蹤文件,就知道哪個block發(fā)生了變化,大大提高了增量備份的效率。具體 方案為:首先為數(shù)據(jù)庫建立一個0級備份(standby),然后將1級備份應用到0級備份上,相當于恢復的過程,這個恢復比應用歸檔日志要快很多,為什 么?因為備份都是變化的block,只要將舊的block覆蓋就可以了,所以不存在日志恢復過程中的順序問題,所以恢復的并行度可以很大,可以充分發(fā)揮出 設備的吞吐能力。另外,當一個block被重復變更多次時,增量備份只需要備份最新的block,恢復也只要覆蓋舊的block即可,定期增量備份實際可 以減少備份需要的空間使用量。而redo文件中記錄了block變化的記錄,所以應用redo恢復時需要多次變更該塊,必須保留所有的歸檔文件才可以恢復 成功。當然,應用1級備份之后,standby并不能打開,因為block并不是一致狀態(tài)的(因為增量備份會持續(xù)很長的時間,在這個過程中,備份的 block的時間點是不一致的),所以要利用歸檔文件將standby推到一致的狀態(tài)才可以打開。 我們目前的方案:建立standby數(shù)據(jù)庫,每周做一次增量備份,首先應用增量備份,然后應用歸檔日志文件將數(shù)據(jù)庫推到一致狀態(tài),可以打開數(shù)據(jù)庫, 驗證備份有效,歸檔日志文件循環(huán)備份到磁帶庫,整個過程通過腳本實現(xiàn)自動化。這個方案采用增量備份+archivelog恢復standby,可以打開 standby驗證備份有效,出現(xiàn)故障時可以直接standby switchover,大大節(jié)省了恢復的時間。而且,這個方案都是基于現(xiàn)有硬件基礎,基本上沒有采購額外的硬件設備和軟件license,花小錢辦大事。 我的技術理念:做解決方案就是搭積木,用簡單的技術去解決問題,并不一定要發(fā)明新的東西,最佳實踐也是很有價值的。 –EOF– 后記:這個問題,我曾經在OOW上問過ORACLE的技術專家,他們也沒有很好的解決方案,建議我們買兩套Exadata來解決(我并沒有搞清楚為 什么Exadata恢復歸檔的速度會變快,是設備本身的能力提高了,還是ORACLE恢復的方式發(fā)生了變化),或者放棄數(shù)據(jù)庫級別的備份,由應用程序寫多 份數(shù)據(jù)來解決。所以說,ORACLE也沒有考慮到如此大數(shù)據(jù)量環(huán)境的備份問題,ORACLE可以考慮推廣我們的解決方案。 看到此文后,認為不錯,特轉到此,以此紀錄。謝謝張瑞(Jacky) |
|
來自: 168一路發(fā) > 《oracle備份恢復》