MySQL如何傳輸二進位制日誌
MySQL Replication可以很方便的用來做應用的讀擴充套件,也可以幫MySQL實現一定程度的HA方案。MySQL通過向備庫傳送二進位制日誌來實現Replication,本文將通過二進位制日誌相關原始碼的主要介面來解釋:“MySQL如何傳輸二進位制日誌,是主庫推,還是備庫拉?MySQL日誌傳輸的實時性如何?”。
在MySQL Replication結構中,備庫端初次通過CHANGE MASTER TO完成Replication配置,再使用start slave命令開始複製。更細緻的,備庫通過IO Thread向主庫發起讀取binlog的請求(COM_BINLOG_DUMP命令),主庫收到COM_BINLOG_DUMP請求後,使用單獨執行緒(dump thread)不斷向備庫IO Thread傳送Binlog。示意圖(大圖):
在主庫端一旦有新的日誌產生後,立刻會傳送一次廣播,dump執行緒在收到廣播後,則會讀取二進位制日誌並通過網路向備庫傳輸日誌,所以這是一個主庫向備庫不斷推送的過程;
新日誌在產生後,只需一次廣播和網路就會立刻(<1ms)向傳送到備庫,如果主備之間網路較好的話(例如RTT<1ms),備庫端的日誌也就小於2ms了。所以,一般的(依賴於RTT),備庫的實時性都非常好。 參考:1. MySQL Replication Manual
2. 圖解”How MySQL Replication Works”
Have fun!
相關文章
- MySQL二進位制日誌MySql
- mysql 二進位制日誌MySql
- mysql 日誌之二進位制日誌MySql
- 管理mysql二進位制日誌MySql
- mysql的二進位制日誌MySql
- MySQL 壓縮二進位制日誌MySql
- mysql二進位制日誌詳解MySql
- mysql 二進位制日誌總結MySql
- mysql二進位制日誌是什麼MySql
- mysql二進位制日誌格式介紹MySql
- 如何在MySQL中檢視binlog二進位制日誌?MySql
- 使用canal偷取MySQL的二進位制日誌MySql
- mysql二進位制日誌相關引數MySql
- mysql二進位制日誌的引數介紹MySql
- Mysql資料庫二進位制日誌的管理MySql資料庫
- MySQL二進位制日誌刪除與恢復MySql
- MySQL什麼時候輪換二進位制日誌MySql
- mysql之 日誌體系(錯誤日誌、查詢日誌、二進位制日誌、事務日誌、中繼日誌)MySql中繼
- mysql關於二進位制日誌binary log的總結MySql
- mysql5.7無法開啟二進位制日誌問題MySql
- 如何把十進位制的數輸入用二進位制全加器,並以十進位制輸出
- mysqlbinlog二進位制日誌檢視工具MySql
- 使用POST方法傳輸二進位制資料
- MySQL二進位制日誌的三種格式優缺點比較MySql
- 【MySQL解惑筆記】Mysql5.7.x無法開啟二進位制日誌MySql筆記
- 輸出二進位制數
- Web 前端開發日誌(二):JavaScript 的二進位制操作Web前端JavaScript
- 遠端備份MySQL二進位制日誌--read-from-remote-serverMySqlREMServer
- C++輸入十進位制數,輸出對應二進位制數、十六進位制數C++
- 如何將日誌檔案和二進位制檔案快速匯入HDFS?
- FTP的傳輸有兩種方式:ASCII傳輸模式和二進位制資料傳輸模式FTPASCII模式
- 什麼是二進位制?二進位制如何轉換?
- mysql關於ib_logfile事務日誌和binary log二進位制日誌的區別MySql
- mysqlbinlog 處理二進位制日誌檔案的工具MySql
- 網路通訊4:HTTP實現二進位制傳輸HTTP
- websocket 二進位制資料傳輸基礎準備工作Web
- WebSocket系列之二進位制資料設計與傳輸Web
- MySQL建立二進位制日誌產生1067錯誤的解決方案MySql