MySQL主從復制不一致的原因分析以及解決
MySQL主從復制不一致
今天繼續(xù)討論,MySQL主從復制什么原因會造成不一致問題
如何預防及解決
1.人為原因導致從庫與主庫數(shù)據(jù)不一致(從庫寫入)
2.主從復制過程中,主庫異常宕機
3.設置了ignore/do/rewrite等replication等規(guī)則
4.binlog非row格式
5.異步復制本身不保證,半同步存在提交讀的問題,增強半同步起來比較完美。 但對于異常重啟(Replication Crash Safe),從庫寫數(shù)據(jù)(GTID)的防范,還需要策略來保證。
6.從庫中斷很久,binlog應用不連續(xù),監(jiān)控并及時修復主從
7.從庫啟用了諸如存儲過程,從庫禁用存儲過程等
8.數(shù)據(jù)庫大小版本/分支版本導致數(shù)據(jù)不一致?,主從版本統(tǒng)一
9.備份的時候沒有指定參數(shù) 例如mysqldump --master-data=2 等
10.主從sql_mode 不一致
11.一主二從環(huán)境,二從的server id一致。
12.MySQL自增列 主從不一致
13.主從信息保存在文件里面,文件本身的刷新是非事務的,導致從庫重啟后開始執(zhí)行點大于實際執(zhí)行點
預防措施介紹
1.master:innodb_flush_log_at_trx_commit=1&sync_binlog=1
2.slave:master_info_repository="TABLE"&relay_log_info_repository="TABLE"&relay_log_recovery=1
3.設置從庫庫為只讀模式
4.可以使用5.7增強半同步避免數(shù)據(jù)丟失等
5.binlog row格式
6.必須引定期的數(shù)據(jù)校驗機制
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
如何用mysql自帶的定時器定時執(zhí)行sql(每天0點執(zhí)行與間隔分/時執(zhí)行)
在開發(fā)過程中經(jīng)常會遇到這樣一個問題,每天或者每月必須定時去執(zhí)行一條sql語句或更新或刪除或執(zhí)行特定的sql語句,下面這篇文章主要給大家介紹了關于如何用mysql自帶的定時器定時執(zhí)行sql(每天0點執(zhí)行與間隔分/時執(zhí)行)的相關資料,需要的朋友可以參考下2023-03-03在MySQL中創(chuàng)建實現(xiàn)自增的序列(Sequence)的教程
這篇文章主要介紹了在MySQL中創(chuàng)建實現(xiàn)自增的序列(Sequence)的教程,分別列舉了兩個實例并簡單討論了一些限制因素,需要的朋友可以參考下2015-12-12MYSQL中統(tǒng)計查詢結果總行數(shù)的便捷方法省去count(*)
查看手冊后發(fā)現(xiàn)SQL_CALC_FOUND_ROWS關鍵詞的作用是在查詢時統(tǒng)計滿足過濾條件后的結果的總數(shù)(不受 Limit 的限制)具體使用如下,感興趣的朋友可以學習下2013-07-07NaviCat連接時提示"不支持遠程連接的MySql數(shù)據(jù)庫"解決方法
前段時間,因為一項目,需要做MYSql的數(shù)據(jù)同步服務,但由于網(wǎng)站空間服務供應商不提供遠程連接MYSql,所以無法利用NaviCat客戶端通過填寫服務器地址來連接遠程服務器,在網(wǎng)上找到了SSH方式連接,但經(jīng)過測試后發(fā)現(xiàn)依舊無法連接。2011-08-08