偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

揭秘MySQL主從復(fù)制:數(shù)據(jù)同步的幕后故事

數(shù)據(jù)庫 MySQL
在全同步復(fù)制模式下,主庫在完成事務(wù)后,會(huì)等待所有從庫完成數(shù)據(jù)復(fù)制后,才向客戶端反饋。這種方式雖然提高了安全性,但性能較差,尤其在從庫數(shù)量較多時(shí),整個(gè)過程將顯得更加漫長(zhǎng)。

MySQL 的主從復(fù)制基于 binlog 實(shí)現(xiàn),其主要過程如下:

圖片圖片

  1. 從服務(wù)器在開啟主從復(fù)制后,將會(huì)創(chuàng)建兩個(gè)線程:I/O 線程與 SQL 線程。
  2. 從服務(wù)器的 I/O 線程會(huì)嘗試與主服務(wù)器建立連接,主服務(wù)器中則有一個(gè)專門與從服務(wù)器的 I/O 線程進(jìn)行交互的 binlog dump 線程。
  3. 從服務(wù)器的 I/O 線程會(huì)向主服務(wù)器的 dump 線程指明其接收 binlog 的起始位置。
  4. 在主服務(wù)器的更新過程中,更改記錄會(huì)被保存到其 binlog 中,依據(jù)不同的 binlog 格式,記錄的內(nèi)容可能有所不同。
  5. 當(dāng) dump 線程檢測(cè)到 binlog 發(fā)生變化時(shí),將從指定位置開始讀取內(nèi)容,并由從服務(wù)器的 I/O 線程將其拉取過來。

這里需要注意的是,盡管某些資料提到主服務(wù)器向從服務(wù)器推送數(shù)據(jù),實(shí)際上,過程是從服務(wù)器主動(dòng)向主服務(wù)器拉取的。(https://dev.mysql.com/doc/refman/8.0/en/replication-implementation.html)

拉的模式,從庫可以自行管理同步進(jìn)度和處理延遲。

  • 從服務(wù)器的 I/O 線程在接收到通知事件后,會(huì)將內(nèi)容保存至 relay log 中。
  • 從服務(wù)器的 SQL 線程則會(huì)不斷讀取自身的 relay log,將內(nèi)容解析為具體操作,并將其寫入數(shù)據(jù)表中。

復(fù)制方式

MySQL 目前支持多種復(fù)制方式,包括全同步復(fù)制、異步復(fù)制和半同步復(fù)制。

異步復(fù)制:這是 MySQL 的默認(rèn)復(fù)制方式。在異步復(fù)制中,主庫在執(zhí)行完事務(wù)后會(huì)立即向客戶端返回,無需關(guān)心從庫是否完成該事務(wù)的執(zhí)行。這種方式可能導(dǎo)致問題:當(dāng)主庫發(fā)生故障時(shí),盡管事務(wù)已執(zhí)行完畢,但數(shù)據(jù)可能尚未同步至從庫,導(dǎo)致從庫在升級(jí)為主庫時(shí)丟失此次事務(wù)的變更內(nèi)容。

全同步復(fù)制:在全同步復(fù)制模式下,主庫在完成事務(wù)后,會(huì)等待所有從庫完成數(shù)據(jù)復(fù)制后,才向客戶端反饋。這種方式雖然提高了安全性,但性能較差,尤其在從庫數(shù)量較多時(shí),整個(gè)過程將顯得更加漫長(zhǎng)。

半同步復(fù)制:半同步復(fù)制介于全同步與異步之間。當(dāng)主庫執(zhí)行完事務(wù)后,它不會(huì)立即反饋給客戶端,而是等待至少一個(gè)從庫完成接收事件后再反饋。在這一方案中,主庫會(huì)在事務(wù)提交的兩個(gè)階段完成后,等待從庫接收到 binlog 后,再返回成功。

在上面這篇中所繪制的圖示中,如果將半同步復(fù)制的過程也納入其中,那么圖示將會(huì)變?yōu)椋?/p>

圖片圖片

責(zé)任編輯:武曉燕 來源: 碼上遇見你
相關(guān)推薦

2012-11-26 10:17:44

InnoDB

2024-03-01 18:33:59

MySQL節(jié)點(diǎn)數(shù)據(jù)

2021-06-08 07:48:27

MySQL主從配置

2025-02-10 10:55:16

2024-07-04 08:00:24

2025-01-15 15:47:36

2017-10-11 15:40:20

MySQL主從復(fù)制拓?fù)浣Y(jié)構(gòu)

2017-09-05 16:00:49

MySQL主從復(fù)制備份

2023-03-19 22:38:12

邏輯復(fù)制PostgreSQL

2023-03-19 11:53:27

2021-03-19 11:33:42

MySQL數(shù)據(jù)庫備份

2023-02-27 07:33:14

MySQL數(shù)據(jù)庫服務(wù)器

2021-01-12 09:03:17

MySQL復(fù)制半同步

2020-04-14 16:26:22

MySQL線程同步

2017-06-23 22:00:13

MySqlsslcentos

2023-07-03 08:57:45

Master服務(wù)TCP

2023-09-24 14:32:15

2022-12-20 08:46:41

MySQL主從復(fù)制

2011-06-16 14:45:11

2011-04-06 09:59:00

MySQL數(shù)據(jù)庫主從復(fù)制
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)