圖1 同步方式
圖2 異步方式
整個數據容災工作過程分為復制和分離兩種狀態(tài),這兩種狀態(tài)可相互切換,具體為:
1)復制狀態(tài),平時生產端數據實時更新到容災端,容災數據盤處于寫狀態(tài),生產數據處于異地保護之中,此時容災端主機無法訪問容災數據盤,容災數據不可讀。如圖3。
2)分離狀態(tài),容災數據演練、驗證時,生產端數據停止復制,與容災端分離,此時容災端主機可訪問數據盤,即容災數據可讀寫。容災和生產是兩個獨立的系統,容災數據的讀寫均不會影響生產端數據。當然此狀態(tài)下,生產端數據是無保護的,所以分離狀態(tài)的時間要盡可能的短。如圖4。
在單向復制模式下,容災端數據如發(fā)生更改也不會影響生產端數據,容災端同樣記錄下變化的位置,待恢復復制后,容災端原修改的數據又增量的方式更新成與生產端完整一致了。
此項技術指通過數據庫軟件或第三方軟件實現數據庫異庫(地)容災,本文以應用范圍廣的ORACLE DataGuard來介紹。
DataGuard原理是容災端獲取生產端數據變化的日志,再重做(應用)于容災端庫,使兩端數據變化相同來達到兩庫數據一致的目的。當災難發(fā)生時,容災端可以很短時間內應用完日志,并切換為生產角色,提供數據服務。這種技術有物理和邏輯兩種方式: