mysql集群不同步_mysql数据库集群出现1236错误导致主库与从库无法同步的
mysql數(shù)據(jù)庫集群出現(xiàn)1236錯誤導致主庫與從庫無法同步的
發(fā)布時間:2020-02-28 02:50:14
來源:51CTO
閱讀:153
作者:o鳳舞九天o
/etc/my.cnf中sync_binlog參數(shù)設置累積多少個事務數(shù)后落盤
說明:
1.數(shù)據(jù)存到數(shù)據(jù)庫和binlog落盤是同時進行的
2.數(shù)據(jù)是先存在內(nèi)存中,達到設置的事務數(shù)后才落盤的
3.從庫讀的是主庫的內(nèi)存中的數(shù)據(jù),并非落盤的數(shù)據(jù)
4.寫入數(shù)據(jù)時,只要主庫存活,就寫入到主庫
過程狀態(tài)記錄:
前提:50個事務一落盤
1.未斷電前:主庫內(nèi)存中正在從50進行到60,從庫讀取主庫內(nèi)存中到58并存入從庫
2.斷電:主庫中50-60的數(shù)據(jù)存在于內(nèi)存中,binlog無法落盤,數(shù)據(jù)沒有保存到數(shù)據(jù)庫文件。開始寫數(shù)據(jù)到從庫中,數(shù)據(jù)進行到61,之后數(shù)據(jù)逐漸寫入從庫
3.主庫重啟:主庫上的50-60的binlog丟失,數(shù)據(jù)丟失,數(shù)據(jù)開始寫入主庫,binlog記錄從50開始。從庫從主庫內(nèi)存中讀數(shù)據(jù),讀到50時,從庫發(fā)現(xiàn)自己已經(jīng)接收過50的數(shù)據(jù),就不再接收,就不進行同步了。此時狀態(tài)為:只寫數(shù)據(jù)到主庫,從庫不同步。
4.最終結(jié)果:從庫中的數(shù)據(jù)為1-58,61-…,缺少的是58-60的,主庫中的數(shù)據(jù)是1-49,…-…,
完整過程描述:
50個事務后落盤,主庫正在寫數(shù)據(jù),此時斷電,內(nèi)存中寫到60,從庫從主庫內(nèi)存中讀到58,從庫讀取到58后產(chǎn)生數(shù)據(jù)到從庫上,主庫由于未到50個事務,不會存盤。導致50-60之間的事務,未能生成binlog日志到盤上,同時數(shù)據(jù)也未寫入到數(shù)據(jù)庫文件上,導致58-60的數(shù)據(jù)既不在主庫上也不在從庫上,丟失。主庫重啟后,由于盤上記錄的數(shù)據(jù)是到49,因而從50開始記錄,此時從庫再從主庫上讀的時候發(fā)現(xiàn)自己已經(jīng)有50了,這樣就產(chǎn)生沖突,就無法繼續(xù)讀取主庫的數(shù)據(jù)了。
現(xiàn)象:同步損壞,主庫重啟后,再寫數(shù)據(jù),只到主庫
總結(jié)
以上是生活随笔為你收集整理的mysql集群不同步_mysql数据库集群出现1236错误导致主库与从库无法同步的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL 七天 学_7天玩转
- 下一篇: jsp怎么连接mysql_jsp如何连接