對于需要CDP連續備份保護的文件,從理論上說,任何一次的文件數據變化都會被自動記錄,因而稱之為持續數據保護 <http://baike.baidu.com/view/3607598.htm>。由于CDP技術是持續不間斷的監控并備份數據變化,故在發生宕機需要進行數據恢復時,數據可以被恢復到過去任意時間點。
雖然CDP技術可以將數據恢復到過去的任意時間點,但不足之處是恢復任意時間點無法保證數據恢復完成后數據庫處于一致性狀態(數據庫一致性是指事務執行的結果必須是使數據庫從一個一致性狀態變到另一個一致性狀態。保證數據庫一致性是指當事務完成時,必須使所有數據都具有一致的狀態)。而非一致性狀態的數據庫運行時有可能造成事務的非正常中斷,影響數據正確性,重則破壞數據庫,造成數據丟失。
具有專利的一致性快照技術,與數據庫結合更好
針對某些應用(如Oracle數據庫等),并不是每個I/O記錄的狀態都是應用數據的一致性點,而非一致性狀態有可能造成事務的非正常中斷,影響數據正確性,重則破壞數據庫,造成數據丟失。火星艙CDP采用數據一致性專利技術(專利號:ZL 2011 1 0270306.5、201310334842.6),專門開發了與應用軟件相結合的數據一致性代理程序,生成數據一致性快照恢復點。既能夠實現單個I/O記錄操作的精細顆粒度,又最大限度保證了復雜應用環境下數據的有效恢復。
火星艙CDP數據一致性快照優勢
本發明克服了現有存儲技術中無法獲取數據庫一致性狀態的缺點,提供一種Oracle數據庫一致性點的捕獲方法。該方法能夠及時捕獲Oracle數據庫處于一致性狀態時的時間點,當處于CDP狀態的Oracle數據庫需要進行數據恢復時,可以對照被捕獲的一致性狀態時間點,將數據庫數據恢復到最近的一致性時間點,從而保證數據庫處于事務一致性狀態。
火星艙CDP的數據庫一致性技術,屬于被動快照記錄點。傳統的主動式快照/備份一致性代理,在生成快照點之前需要通知數據庫將內存中的臨時數據(dirty data)寫盤,會影響數據庫性能,特別是頻繁快照時影響更大。而火星艙CDP的被動式快照生成機制對性能沒有影響。
火星艙CDP快照實現原理
本方法可以在Oracle數據庫相應事務結束后秒級時間內確定事務的一致性時間點。從而使數據庫需要進行恢復操作時,可以依據時間點信息恢復到距當前時間最近的事務一致性點。如表1(捕獲的一致性點實例)所示,右側所列每一個被捕獲的時間點處,Oracle數據庫均處于一致性狀態。
同時,由于本方法采用分析數據庫內部表方法捕獲數據庫一致性點,故適用于8.0版本(由于本方法涉及Oracle增量檢查點信息,而Oracle從8i開始引入了增量檢查點的概念)以上所有版本Oracle數據庫,并支持Windows,Linux,Unix等多操作平臺下應用。
對于MS SQL Server數據庫等應用,火星艙CDP也能通過類似技術實現方式,獲取被動式一致性“快照”點。在保證應用數據能夠有效恢復的同時,避免了影響存儲I/O的性能。