MySQL主從復(fù)制不一致的原因分析以及解決
MySQL主從復(fù)制不一致
今天繼續(xù)討論,MySQL主從復(fù)制什么原因會(huì)造成不一致問題
如何預(yù)防及解決
1.人為原因?qū)е聫膸炫c主庫數(shù)據(jù)不一致(從庫寫入)
2.主從復(fù)制過程中,主庫異常宕機(jī)
3.設(shè)置了ignore/do/rewrite等replication等規(guī)則
4.binlog非row格式
5.異步復(fù)制本身不保證,半同步存在提交讀的問題,增強(qiáng)半同步起來比較完美。 但對(duì)于異常重啟(Replication Crash Safe),從庫寫數(shù)據(jù)(GTID)的防范,還需要策略來保證。
6.從庫中斷很久,binlog應(yīng)用不連續(xù),監(jiān)控并及時(shí)修復(fù)主從
7.從庫啟用了諸如存儲(chǔ)過程,從庫禁用存儲(chǔ)過程等
8.數(shù)據(jù)庫大小版本/分支版本導(dǎo)致數(shù)據(jù)不一致?,主從版本統(tǒng)一
9.備份的時(shí)候沒有指定參數(shù) 例如mysqldump --master-data=2 等
10.主從sql_mode 不一致
11.一主二從環(huán)境,二從的server id一致。
12.MySQL自增列 主從不一致
13.主從信息保存在文件里面,文件本身的刷新是非事務(wù)的,導(dǎo)致從庫重啟后開始執(zhí)行點(diǎn)大于實(shí)際執(zhí)行點(diǎn)
預(yù)防措施介紹
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.設(shè)置從庫庫為只讀模式
4.可以使用5.7增強(qiáng)半同步避免數(shù)據(jù)丟失等
5.binlog row格式
6.必須引定期的數(shù)據(jù)校驗(yàn)機(jī)制
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- MySQL主從復(fù)制原理解析與最佳實(shí)踐過程
- 關(guān)于Mysql搭建主從復(fù)制功能的步驟實(shí)現(xiàn)
- MySQL實(shí)現(xiàn)主從復(fù)制的原理詳解
- MySQL主從復(fù)制與讀寫分離的使用示例
- Docker部署MySQL主從復(fù)制的實(shí)現(xiàn)
- MySQL主從庫過濾復(fù)制配置教程
- Docker安裝mysql主從復(fù)制的實(shí)現(xiàn)步驟
- K8s 如何部署 MySQL 8.0.20 主從復(fù)制結(jié)構(gòu)
- mysql通過binlog日志復(fù)制主從同步的實(shí)現(xiàn)
- Docker部署Mysql8.0.20并配置主從復(fù)制的實(shí)現(xiàn)步驟
- mysql8.4.0實(shí)現(xiàn)主從復(fù)制部署
相關(guān)文章
關(guān)于MySQL 優(yōu)化的100個(gè)的建議
MYSQL 如此方便和穩(wěn)定,以至于我們?cè)陂_發(fā) WEB 程序的時(shí)候很少想到它。即使想到優(yōu)化也是程序級(jí)別的,比如,不要寫過于消耗資源的 SQL 語句。但是除此之外,在整個(gè)系統(tǒng)上仍然有很多可以優(yōu)化的地方。2016-01-01如何用mysql自帶的定時(shí)器定時(shí)執(zhí)行sql(每天0點(diǎn)執(zhí)行與間隔分/時(shí)執(zhí)行)
在開發(fā)過程中經(jīng)常會(huì)遇到這樣一個(gè)問題,每天或者每月必須定時(shí)去執(zhí)行一條sql語句或更新或刪除或執(zhí)行特定的sql語句,下面這篇文章主要給大家介紹了關(guān)于如何用mysql自帶的定時(shí)器定時(shí)執(zhí)行sql(每天0點(diǎn)執(zhí)行與間隔分/時(shí)執(zhí)行)的相關(guān)資料,需要的朋友可以參考下2023-03-03在MySQL中創(chuàng)建實(shí)現(xiàn)自增的序列(Sequence)的教程
這篇文章主要介紹了在MySQL中創(chuàng)建實(shí)現(xiàn)自增的序列(Sequence)的教程,分別列舉了兩個(gè)實(shí)例并簡(jiǎn)單討論了一些限制因素,需要的朋友可以參考下2015-12-12MYSQL中統(tǒng)計(jì)查詢結(jié)果總行數(shù)的便捷方法省去count(*)
查看手冊(cè)后發(fā)現(xiàn)SQL_CALC_FOUND_ROWS關(guān)鍵詞的作用是在查詢時(shí)統(tǒng)計(jì)滿足過濾條件后的結(jié)果的總數(shù)(不受 Limit 的限制)具體使用如下,感興趣的朋友可以學(xué)習(xí)下2013-07-07NaviCat連接時(shí)提示"不支持遠(yuǎn)程連接的MySql數(shù)據(jù)庫"解決方法
前段時(shí)間,因?yàn)橐豁?xiàng)目,需要做MYSql的數(shù)據(jù)同步服務(wù),但由于網(wǎng)站空間服務(wù)供應(yīng)商不提供遠(yuǎn)程連接MYSql,所以無法利用NaviCat客戶端通過填寫服務(wù)器地址來連接遠(yuǎn)程服務(wù)器,在網(wǎng)上找到了SSH方式連接,但經(jīng)過測(cè)試后發(fā)現(xiàn)依舊無法連接。2011-08-08