您好,登錄后才能下訂單哦!
一致性問題一般是指數據前后之間的邏輯關系是否一致(正確和完整)。簡單舉例來說,比如A用戶正在寫數據N的時候,B用戶開始讀數據N,由于A用戶剛寫了一半,所以B用戶讀的數據就不是前后邏輯一致性的,這就是一致性問題的一種。
一致性問題在各個領域都存在,提的比較多的是分布式存儲的一致性問題,數據庫的一致性問題,以及崩潰一致性問題。
我們黑方主要涉及到的可以認為是數據備份中的一致性問題,和上面說到的一致性問題有關聯性,又不完全相同。
數據備份中的一致性問題是指備份的文件及數據是否和待備份數據保持一致。主要兩個因素導致:
1、由于各種cache的存在,導致實際存儲在硬盤上的數據和用戶實際看到的并不一致;
2、在備份過程中,數據又可能發生變化,導致前后備份的數據處于不一致狀態。
對于備份中的一致性問題,黑方的解決方案按備份方式的不同而有變化:
1、對于定時備份來說:
(1)普通文件定時備份,windows系統,可以采用vss卷影的方式備份來解決一致性問題,VSS服務本身保證了在創建卷snapshot時數據是一致的。
(2)數據庫文件備份,可以用數據庫提供的備份接口來解決,由這些接口API來負責提供數據一致性保障;
對于沒有提供接口API的,就以普通文件形式直接備份,此時是存在崩潰一致性問題的,就是備份過程中數據發生變化,但考慮到數據庫自身的健壯性,一般會檢查到數據不一致,從而觸發回滾到上一個一致性的狀態,在實際使用過程中,是可行的(不過理論上不完美)。
(3)OS系統備份,windows下也是用vss卷影的方式;linux用文件打包的方式,文件的粒度相對于整個卷來說比較小,這樣可以認為是近似數據一致(理論上不完美,但實際可行)。
2、對于實時備份來說:
黑方的實時備份主要是兩方面,文件cdp以及卷cdp。
兩者對于一致性的處理基本方法一致,首先做完整備份,備份之前在驅動層做snapshot,然后開始備份,備份過程中如果發生數據更新,依據數據的不同會有兩種處理方法:
(1)、文件cdp會將數據更新的部分先備份下來,然后更新到備份集里;
(2)、卷cdp會將數據更新的部分加上臟標志,在備份完畢后重新對臟標志的數據再次進行備份。
總結來說,黑方就是盡可能保證數據一致性,如果實在達不到,就要做到崩潰一致性。
崩潰一致性通常是指突然斷電或死機崩潰時的數據所處的一致性狀態,理論上任何app都應該能處理突然斷電的情況,所以能做到崩潰一致性也可以滿足需求。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。