MySQL 主从复制事件校验 mysql Replication Event Checksum
mysql 主从复制(replication) 同步速度快,简单易用,并且相当可靠。不过,当你检查到主从数据不一致的时候,很难判断出问题所在
mysql 主从复制(replication) 同步速度快,简单易用,并且相当可靠。
不过,当你检查到主从数据不一致的时候,很难判断出问题所在(软件问题?硬件问题?网络传输问题?)
一个比较常见的情况是软硬件或者网络传输出错,导致主服务器上运行的sql语句与从服务器上运行的sql语句不一致(称为event corrupt)。
为了解决这个问题, mysql的开发人员在 5.6 Milestone Development Release版本中加入了 replication event checksum(主从复制事件校验)功能。
相关阅读:
MySQL 5.6主从复制第一部分[简介及配置]
MySQL 5.6主从复制第二部分[恢复某一台从服务器]
MySQL 5.6主从复制第三部分[把从服务器提升为主服务器]
MySQL 5.6主从复制第四部分[一些被忽视的操作细节]
MySQL 主从复制事件校验 MySQL Replication Event Checksum
使用pt-table-checksum检查主从复制是否正常
----------------------------------------分割线----------------------------------------
当一个event被写入binary log(二进制日志)的时候,checksum也同时写入binary log,然后在event通过网络传输到从服务器(slave)之后,再在从服务器中对其进行验证并写入从服务器的relay log.
由于每一步都记录了event和checksum,所以我们可以很快地找出问题所在。
checksum使用zlib中的CRC-32算法,更具体地讲,是ISO-3309 CRC-32算法,虽然此算法效率非常高,但总是带来了一些额外的计算,至于会影响性能到怎样的地步,目前还没有benchmark。
[图1]
如图1所示,当箭头离开thread的时候,就可以生成checksum;当箭头进入thread的时候,就可以对checksum进行校验了。
不过由于某些原因,并非在所有的箭头处都进行了checksum。
event checksum功能,引入了三个新的参数:
binlog_checksum
默认为NONE, 表示在图1的箭头1 不生成checksum, 这样就可以兼容旧版本的mysql。
此外,就只能设置为CRC32了。
master_verify_checksum
可以设置为0或者1(默认为0)。 对应于图1中的箭头2。
设置为1的话,不仅dump thread会对event进行校验,当master上执行show binlog events的时候,也会对event进行校验。
设置为1,可以保证event被完整无缺地写入到主服务器的binlog中了。
不过,通常这个都设置为0。
slave_sql_verify_checksum
与master_verify_checksum类似,这个也只能设置为0或者1(默认为1)。
设置为1, 在图1的箭头4处会生成checksum,然后在箭头5处会对checksum进行验证。
看完这三个参数,再与图1进行一下比较,会发现在箭头3那里没有进行任何验证。
原文中的解释是:
在箭头4的时候,当IO thread把event写入到relay log的时候,会验证checksum。
This is not necessary since the checksum is verified when the event is written to the relay log at point 4, and the I/O thread just does a straight copy of the event。
当checksum出错的时候,会是怎样的呢?试试看吧。
mastert1 name ; Query OKaffected (0.04 sec) mastert1; Query OKaffected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0 master; Log_name masterQuery masterIntvar INSERT_IDmasterQuery ; masterQuery COMMIT sec)这里与老版本的mysql一致,, 暂时还看不到checksum的影子。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

資料備份與故障復原:MySQL主從複製在叢集模式下的重要性探討引言:近年來,隨著資料規模和複雜性的不斷增長,資料庫的備份和故障復原變得尤為重要。在分散式系統中,MySQL主從複製在叢集模式下被廣泛應用,以提供高可用性和容錯性。本文將探討MySQL主從複製在叢集模式下的重要性,並給出一些程式碼範例。一、MySQL主從複製的基本原理及優勢MySQL主從複製是一種通

優化資料庫效能:MySQL主從複製在叢集技術中的最佳使用方法摘要:隨著互聯網的快速發展,資料庫的效能問題成為了各個企業和組織關注的焦點。 MySQL主從複製技術在解決資料庫效能瓶頸方面發揮重要作用。本文將介紹MySQL主從複製的概念及原理,以及在叢集技術中的最佳使用方法,幫助讀者最佳化資料庫效能。一、引言隨著資料量不斷增加,資料庫的效能問題日益突出。如何優化數

解密MySQL主從複製:揭秘其叢集模式下的關鍵實作機制引言:在現代資料庫系統中,資料的高可用性和靈活性是非常重要的。 MySQL作為一款開源的關聯式資料庫管理系統,在滿足使用者需求方面具有廣泛的應用性。而MySQL的主從複製是MySQL資料庫架構中非常關鍵的一部分,用於實現資料的備份和高可用性。本文將聚焦在MySQL主從複製的關鍵實作機制,特別是其在叢集模式下

從容應對高並發:MySQL主從複製作為叢集技術的效能優勢分析隨著網路的快速發展,使用者對於網站和應用程式的訪問量呈現出爆炸性成長的趨勢。在這種高並發的情況下,如何確保系統的穩定性和效能成為了每個開發人員和系統管理員的重要任務。在資料庫中,MySQL主從複製技術被廣泛應用,成為了應對高並發的有效解決方案之一。本文將探討MySQL主從複製作為叢集技術的效能優勢。首先

MySQL主從複製屬於叢集技術還是負載平衡技術?解析和區別摘要:MySQL主從複製是一種資料庫複製技術,用於在多個伺服器上同步資料庫的資料。本文將從技術原理、應用場景和功能特性等方面來解析和區分MySQL主從複製與叢集技術以及負載平衡技術的差異。引言:在現代互聯網應用中,資料庫的高可用性和擴展性是至關重要的。 MySQL主從複製是一種常見的解決方案之一,但是,

詳解MySQL主從複製在叢集技術中發揮的功能和優勢引言MySQL是一款功能強大的關聯式資料庫管理系統,廣泛應用於各種大型網站和應用程式。隨著資料量的增加和存取請求的增加,單一MySQL伺服器的壓力也逐漸增大,為了提高資料庫的效能和可靠性,人們開始採用叢集技術,其中MySQL主從複製就是其中一種常用的技術手段。 MySQL主從複製原理MySQL主從複製是指將一

挖掘MySQL主從複製的叢集技術潛力:開源方案與商業解決方案比較評估隨著互聯網業務的不斷發展和資料量的不斷增加,對於資料庫叢集方案的需求也日益強大。 MySQL主從複製技術正好滿足了這個需求,它能夠將資料庫的讀寫操作在多個節點上分別處理,提高了資料庫的讀取效能和可用性。本文將對MySQL主從複製的叢集技術潛力進行挖掘,並對開源方案和商業解決方案進行比較評估

隨著網路的快速發展,應用系統的資料量越來越大,對資料庫的效能和可靠性要求也越來越高。 MySQL作為最常用的開源關係型資料庫之一,具有較高的效能和穩定性,被廣泛應用於各種企業級應用中。而MySQL主從複製作為常用的資料複製方案,能夠提高資料的可靠性和讀寫效能,並且被廣泛應用在大規模資料應用中。 MySQL主從複製的叢集特性指的是透過複製機制將主資料庫的資料同步
