好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MySQL是如何實現主備同步

MySQL是如何實現主備同步

熱門標簽:沃克斯電梯外呼線路圖 地圖標注被騙三百怎么辦 常州電銷外呼系統一般多少錢 400電話鄭州申請 北京人工外呼系統價錢 天智外呼系統 福州呼叫中心外呼系統哪家好 房產智能外呼系統品牌 云南語音外呼系統平臺

主備同步,也叫主從復制,是MySQL提供的一種高可用的解決方案,保證主備數據一致性的解決方案。

在生產環境中,會有很多不可控因素,例如數據庫服務掛了。為了保證應用的高可用,數據庫也必須要是高可用的。

因此在生產環境中,都會采用主備同步。在應用的規模不大的情況下,一般會采用一主一備。

除了上面提到的數據庫服務掛了,能夠快速切換到備庫,避免應用的不可用外,采用主備同步還有以下好處:

提升數據庫的讀并發性,大多數應用都是讀比寫要多,采用主備同步方案,當使用規模越來越大的時候,可以擴展備庫來提升讀能力。

備份,主備同步可以得到一份實時的完整的備份數據庫。

快速恢復,當主庫出錯了(比如誤刪表),通過備庫來快速恢復數據。對于規模很大的應用,對于數據恢復速度的容忍性很低的情況,通過配置一臺與主庫的數據快照相隔半小時的備庫,當主庫誤刪表,就可以通過備庫和binlog來快速恢復,最多等待半小時。

說了主備同步是什么和好處,下面讓我們來了解一下主備同步是怎么實現的。

主備同步的實現原理

我們先來了解一下主備同步的原理,下面以一個update語句來介紹主庫與備庫間是如何進行同步的。

上圖是一個update語句在節點A執行,然后同步到節點B的完整流程圖,具體步驟有:

  1. 主庫接受到客戶端發送的一條update語句,執行內部事務邏輯,同時寫binlog。
  2. 備庫通過 change master 命令,設置主庫的IP、端口、用戶名和密碼,以及要從哪個位置開始請求 binlog。這個位置包含文件名和偏移量。
  3. 在備庫上執行start slave命令,啟動兩個線程 io_thread 和 sql_thread,其中 io_thread 負責與主機進行連接。
  4. 主庫校驗完用戶名和密碼,按照接收到的位置去讀取binlog,發給備庫。
  5. 備庫接收到binlog后,寫到本地文件(relay log,中轉文件)。
  6. 備庫讀取中轉文件,解析出命令,然后執行。

主備同步的工作原理其實就是一個完全備份加上二進制日志備份的還原。不同的是這個二進制日志的還原操作基本上是實時的。

備庫通過兩個線程來實現同步:

  • 一個是 I/O 線程,負責讀取主庫的二進制日志,并將其保存為中繼日志。
  • 一個是 SQL 線程,負責執行中繼日志。

從上面的流程可以看出,主備同步的關鍵是binlog

常見的兩種主備切換流程

M-S結構

M-S結構,兩個節點,一個當主庫、一個當備庫,不允許兩個節點互換角色。

在狀態1中,客戶端的讀寫都直接訪問節點A,而節點B是A的備庫,只是將A的更新都同步過來,到本地執行。這樣可以保持節點B和A的數據是相同的。

當需要切換的時候,就切成狀態2。這時候客戶端讀寫訪問的都是節點B,而節點A是B的備庫。

雙M結構

雙M結構,兩個節點,一個當主庫,一個當備庫,允許兩個節點互換角色。

對比前面的M-S結構圖,可以發現,雙M結構和M-S結構,其實區別只是多了一條線,即節點A和B之間總是互為主備關系。這樣在切換的時候就不用再修改主備關系。

雙M結構的循環復制問題

在實際生產使用中,多數情況是使用雙M結構的。但是,雙M結構還有一個問題需要解決。

業務邏輯在節點A執行更新,會生成binlog并同步到節點B。節點B同步完成后,也會生成binlog。(log_slave_updates設置為on,表示備庫也會生成binlog)。

當節點A同時也是節點B的備庫時,節點B的binlog也會發送給節點A,造成循環復制。

解決辦法:

  1. 設置節點的server-id,必須不同,不然不允許設置為主備結構
  2. 備庫在接到binlog后重放時,會記錄原記錄相同的server-id,即誰產生即為誰的。
  3. 每個節點在接受binlog時,會判斷server-id,如果是自己的就丟掉。

解決后的流程:

  1. 業務邏輯在節點A執行更新,會生成帶有節點A的server-id的binlog。
  2. 節點B接受到節點A發過來的binlog,并執行完成后,會生成帶有節點A的server-id的binlog。
  3. 節點A接受到binlog后,發現是自己的,就丟掉。死循環就在這里斷掉了。

以上就是MySQL是如何實現主備同步的詳細內容,更多關于MySQL 主備同步的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySQL GTID全面總結
  • MYSQL數據庫GTID實現主從復制實現(超級方便)
  • MySQL5.6 GTID模式下同步復制報錯不能跳過的解決方法
  • Mysql GTID Mha配置方法
  • MySQL5.7不停業務將傳統復制變更為GTID復制的實例
  • 詳解MySQL主從復制實戰 - 基于GTID的復制
  • MySQL 5.6 GTID新特性實踐
  • MySQL5.6基于GTID的主從復制
  • 在MySQL中使用GTIDs復制協議和中斷協議的教程
  • 關于mysql主備切換canal出現的問題解決
  • 基于mysql+mycat搭建穩定高可用集群負載均衡主備復制讀寫分離操作
  • MySQL GTID主備不一致的修復方案

標簽:黔東 拉薩 沈陽 珠海 移動 沈陽 鹽城 徐州

巨人網絡通訊聲明:本文標題《MySQL是如何實現主備同步》,本文關鍵詞  MySQL,是,如何,實現,主備,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL是如何實現主備同步》相關的同類信息!
  • 本頁收集關于MySQL是如何實現主備同步的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 欲艳春媚荡吟阅读| 韩国精品欧美一区二区三区| 免费看少妇高潮成人片| 444kkk视频在线观看国产| 在线免费观**| 网www天堂资源在线| 色爽女视频| 国产午夜视频| 波多野结衣中文无码AV人妻系列| 国产精品成人国产乱一区| 百合h肉动漫无打码在线观看| 337p粉嫩日本欧洲亚洲Av| 日韩精品 电影一区 亚洲| 国产涩涩| 在线看片免费人成漫画| 女仆被主人调教跪着打屁股| 这家伙好大| 国产?日韩?欧美| 在线看国产丝袜精品| 日韩理论在线播放| 国产情侣酒店自拍| 香蕉丝瓜绿巨人秋葵番茄视频 | 日日摸夜夜添免费毛片小说| 后妈的春天小说免费读全文| 秋霞2019理论成人鲁丝片| 91人妻中文字幕在线精品| 免费播放春色aⅴ视频| 色婷亚洲| 欧美一区二区三区天天爽| 十大禁用软件app黄台大全下载| 扒开双腿猛进入女人的视频| 精品精品国产yyy5857香蕉| 四十九级婬片A片AAA毛片A级 | 最新国产在线播放| 国产无遮挡| 美痴女~美人上司北岛玲| 国产熟妇在线AV免费鲁啊鲁视频 | FerⅩXx性欧美| 欧美精产国品一二三区| 在线色国产| 国产产一区二区三区久久毛片国语 |