您好,登錄后才能下訂單哦!
/etc/my.cnf中sync_binlog參數設置累積多少個事務數后落盤
?
說明:
1.???? 數據存到數據庫和binlog落盤是同時進行的
2.???? 數據是先存在內存中,達到設置的事務數后才落盤的
3.???? 從庫讀的是主庫的內存中的數據,并非落盤的數據
4.???? 寫入數據時,只要主庫存活,就寫入到主庫
?
過程狀態記錄:
?前提:50個事務一落盤
1.???? 未斷電前:主庫內存中正在從50進行到60,從庫讀取主庫內存中到58并存入從庫
2.???? 斷電:主庫中50-60的數據存在于內存中,binlog無法落盤,數據沒有保存到數據庫文件。開始寫數據到從庫中,數據進行到61,之后數據逐漸寫入從庫
3.???? 主庫重啟:主庫上的50-60的binlog丟失,數據丟失,數據開始寫入主庫,binlog記錄從50開始。從庫從主庫內存中讀數據,讀到50時,從庫發現自己已經接收過50的數據,就不再接收,就不進行同步了。此時狀態為:只寫數據到主庫,從庫不同步。
4.???? 最終結果:從庫中的數據為1-58,61-…,缺少的是58-60的,主庫中的數據是1-49,…-…,
?
?
完整過程描述:
50個事務后落盤,主庫正在寫數據,此時斷電,內存中寫到60,從庫從主庫內存中讀到58,從庫讀取到58后產生數據到從庫上,主庫由于未到50個事務,不會存盤。導致50-60之間的事務,未能生成binlog日志到盤上,同時數據也未寫入到數據庫文件上,導致58-60的數據既不在主庫上也不在從庫上,丟失。主庫重啟后,由于盤上記錄的數據是到49,因而從50開始記錄,此時從庫再從主庫上讀的時候發現自己已經有50了,這樣就產生沖突,就無法繼續讀取主庫的數據了。
?
現象:同步損壞,主庫重啟后,再寫數據,只到主庫
?
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。