2014-10-08 71 views
0

我正在讀上加萊拉集羣的mariaDD知識基礎,我碰到這樣的:的同步和異步聚類

同步和異步複製之間的基本區別是,「同步」保證,如果變化發生的一個節點上羣集,它們在「同步」或其他同時發生在其他節點上。 「異步」不保證在「主」節點上應用更改和向「從」節點傳播更改之間的延遲。延遲可能很短或很長。這也意味着如果主節點崩潰,一些最新的更改可能會丟失

對於最後一句,我一直都明白,即使異步集羣設置中的從站更新沒有在同一時間執行它會在主服務器上進行更新時將這些更新記錄到bin日誌文件中。因此,如果主服務器在所有數據傳遞到從服務器之前崩潰,則在主服務器恢復後,由於bin日誌文件記錄更新,更新仍將繼續。請有人告訴我,如果我的理解是錯誤的,請澄清在這個問題上。謝謝。

回答

1

在你的普通複製對的例子中,奴隸會在主人回來後迎頭趕上。假設主人確實回來了,你不會真的丟失數據,但是如果主人永久死亡,數據就會丟失。您提到的知識庫文章正在討論複製延遲,而不是複製流的整體完整性。

對於正常的複製,如果從屬io線程(從主服務器獲取複製事件的部分)能夠跟上主服務器,那麼如果主服務器崩潰,從服務器可能只會丟失幾秒鐘。但是,如果它不能跟上並且例如落後1小時,則奴隸將失去對1小時數據的訪問權限。另一種方式可能會失去對從站數據的訪問權限,如果您設置了達到最大中繼日誌大小的設置。

Galera確保將寫入發送到羣集中的每個節點,然後在任何節點上實際提交寫入,因此一旦完成寫入的節點落實寫入,所有其他節點將落實相同的寫法。隨着加萊拉,所有的寫作基本上同時發生在每個節點上。在正常操作期間任何時候丟失任何節點都不會導致任何數據丟失。