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)文章
MySQL數(shù)據(jù)庫實(shí)現(xiàn)統(tǒng)計(jì)所有表的空間占用與行數(shù)
這篇文章主要為大家詳細(xì)介紹了MySQL數(shù)據(jù)庫實(shí)現(xiàn)統(tǒng)計(jì)所有表的空間占用與行數(shù)的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2026-02-02
mysql8.0 用戶角色管理及授權(quán)的實(shí)現(xiàn)
MySQL是一種常見的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它提供了強(qiáng)大的安全機(jī)制來管理用戶權(quán)限,本文主要介紹了mysql8.0 用戶角色管理及授權(quán)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04
Win10安裝mysql8.0.15 winx64及連接服務(wù)器過程中遇到的問題
這篇文章主要介紹了Win10安裝mysql8.0.15 winx64及連接服務(wù)器過程中遇到的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
從源碼到實(shí)戰(zhàn)盤點(diǎn)MySQL中不寫B(tài)inlog的N種場(chǎng)景
Binlog(二進(jìn)制日志)是MySQL的核心組件,負(fù)責(zé)記錄數(shù)據(jù)變更,支撐著主從復(fù)制、數(shù)據(jù)恢復(fù)等重要功能,本文將深入MySQL源碼,徹底解析哪些場(chǎng)景下MySQL不會(huì)寫入binlog,希望對(duì)大家有所幫助2026-02-02
mysql提示[Warning] Invalid (old?) table or database name問題的解決方
今天一個(gè)朋友的上服務(wù)器出現(xiàn)[Warning] Invalid (old?) table or database name問題,通過分析binlog日志發(fā)現(xiàn),在以下sql語句中出現(xiàn)問題,由于涉及敏感內(nèi)容,用sql語法表示2012-07-07
Mysql最新版本的數(shù)據(jù)庫安裝教程(5.7)
這篇文章主要為大家詳細(xì)介紹了Mysql最新版本的數(shù)據(jù)庫安裝教程,分享了Mysql 5.7安裝配置方法,感興趣的小伙伴們可以參考一下2016-07-07

