亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL 4種常用的主從復制架構(gòu)

 更新時間:2020年08月19日 09:20:47   作者:itbsl  
這篇文章主要介紹了MySQL 4種常用的主從復制架構(gòu),幫助大家更好的理解和學習MySQL,感興趣的朋友可以了解下

一主多從復制架構(gòu)

在主庫讀取請求壓力非常大的場景下,可以通過配置一主多從復制架構(gòu)實現(xiàn)讀寫分離,把大量的對實時性要求不是特別高的讀請求通過負載均衡分部到多個從庫上(對于實時性要求很高的讀請求可以讓從主庫去讀),降低主庫的讀取壓力,如下圖所示。

在主庫出現(xiàn)異常宕機的情況下,可以把一個從庫切換為主庫繼續(xù)提供服務。

在主從復制場景下會出現(xiàn)主從延遲,想想該怎么解決?

多級復制架構(gòu)

一主多從的架構(gòu)能夠解決大部分讀請求壓力特別大的的場景的需求,考慮到MySQL的復制需要主庫發(fā)送BINLOG日志到從庫的I/O線程,主庫的I/O壓力和網(wǎng)絡壓力會隨著從庫的增加而增長(每個從庫都會在主庫上有一個獨立的BINLOG Dump線程來發(fā)送事件),而多級復制架構(gòu)解決了一主多從場景下的,主庫額外的I/O和網(wǎng)絡壓力。MySQL的多級復制架構(gòu)如下圖所示。

對比一主多從的架構(gòu),多級復制僅僅是在主庫Master1復制到從庫Slave1、Slave2、Slave3的中間增加了一個二級主庫Master2,這樣,主庫Master1只需要給一個從庫Master2發(fā)送BINLOG日志即可,減輕了主庫Master1的壓力。二級主庫Master2再發(fā)送BINLOG日志給所有的從庫Slave1、Slave2和Slave3的I/O線程。

多級復制解決了一主多從場景下,主庫的I/O負載和網(wǎng)絡壓力,當然也有缺點:MySQL的傳統(tǒng)復制是異步的,多級復制場景下主庫的數(shù)據(jù)是經(jīng)歷兩次復制才到達從庫Slave1、Slave2、Slave3的,期間的延遲要比一主多從復制場景下只經(jīng)歷一次復制的還大。

可以通過在二級主庫Master2上選擇表引擎為BLACKHOLE來降低多級復制的延遲。顧名思義,BLACKHOLE引擎是一個“黑洞”引擎,寫入BLACKHOLE表的數(shù)據(jù)并不會寫會到磁盤上,BLACKHOLE表永遠都是空表,INSERT、UPDATE、DELETE操作僅僅在BINLOG中記錄事件。

CREATE TABLE `user` (
	`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`name` varchar(255) NOT NULL DEFAULT '',
	`age` tinyint unsigned NOT NULL DEFAULT 0
)ENGINE=BLACKHOLE charset=utf8mb4;
INSERT INTO `user` (`name`,`age`) values("itbsl", "26");
SELECT * FROM `user`;

可以看到,存儲引擎為BLACKHOLE的user表里沒有數(shù)據(jù)。

BLACKHOLE引擎非常適合二級主庫Masger2的場景:Master2并不承擔讀寫請求,僅僅負責將BINLOG日志盡快傳送給從庫。

雙主(Dual Master)復制架構(gòu)

雙主(Dual Master)復制架構(gòu)適用于DBA做維護時需要主從切換的場景,通過雙主復制架構(gòu)避免了重復搭建從庫的麻煩,雙主復制架構(gòu)如下圖所示。

主庫Master1和Master互為主從,所有Web Client的寫請求都訪問主庫Master1或Master2。加入,DBA需要做日常維護操作,為了避免影響服務,需進行一下操作。

  • 首先,在Master1庫上停止Slave線程(STOP SLAVE),避免后續(xù)對Master2庫的維護操作操作被實時復制到Master1庫上對服務造成影響。
  • 其次,在Master2庫上停止Slave線程(STOP SLAVE),開始日常維護操作,例如修改varchar字段從長度10增加到200。
  • 然后,在Master2庫上完成維護操作之后,打開Master2庫上的Slave線程(STRART SLAVE),讓Master2的數(shù)據(jù)和Master1庫同步,同步完成后,把應用的寫操作切換到Master2庫上。
  • 最后,確認Master1庫上沒有應用訪問后,打開Master1的Slave線程(START SLAVE)即可。

通過雙主復制架構(gòu)能夠大大減輕一主多從架構(gòu)下對主庫進行維護帶來的額外搭建從庫的工作。

當然雙主架構(gòu)還能和主從復制聯(lián)合起來使用:在Master2庫下配置從庫Slave1、Slave2等,這樣既可通過從庫Slave1等來分擔讀取壓力,同時在DBA做維護的同時,避免了重建從庫的額外工作,但需要注意從庫的復制延遲。MySQL雙主多級復制架構(gòu)如下所示。

多源(Multi-Source)復制架構(gòu)

多源(Multi-Source)復制架構(gòu)適用于復雜的業(yè)務需求,既可以支撐OLTP(聯(lián)機事務處理),也可以滿足OLAP(聯(lián)機分析處理)。MySQL的多源復制架構(gòu)我就暫時不畫啦,等有空再畫好補充上(畫圖也是個體力活呀)。有興趣的可以看《深入淺出MySQL數(shù)據(jù)庫開發(fā)、優(yōu)化與管理維護》這本書。

如何優(yōu)化主從延遲問題?

  • 優(yōu)化網(wǎng)絡環(huán)境
  • 在MySQL5.5~MySQL5.6中,使用半同步復制
  • 在MySQL5.7中,可以使用增強半同步復制(也稱為無損復制)

關于MySQL主從延遲的具體信息,可以看我的另一篇文章聊聊MySQL主從復制的幾種復制方式

整理自:

深入淺出MySQL數(shù)據(jù)庫開發(fā)、優(yōu)化與管理維護》這本書。

以上就是MySQL 4種常用的主從復制架構(gòu)的詳細內(nèi)容,更多關于MySQL 主從復制架構(gòu)的資料請關注腳本之家其它相關文章!

相關文章

  • MySQL數(shù)據(jù)庫的約束使用實例

    MySQL數(shù)據(jù)庫的約束使用實例

    約束是用來限制表中的數(shù)據(jù)長什么樣子的,即什么樣的數(shù)據(jù)可以插入到表中,什么樣的數(shù)據(jù)插入不到表中,下面這篇文章主要給大家介紹了關于如何通過一文理解MySQL數(shù)據(jù)庫的約束與表的設計的相關資料,需要的朋友可以參考下
    2022-12-12
  • MySQL常見內(nèi)置函數(shù)以及其使用教程

    MySQL常見內(nèi)置函數(shù)以及其使用教程

    MySQL數(shù)據(jù)庫中提供了很豐富的函數(shù),MySQL函數(shù)包括數(shù)學函數(shù)、字符串函數(shù)、日期和時間函數(shù)、條件判斷函數(shù)、系統(tǒng)信息函數(shù)、加密函數(shù)、格式化函數(shù)等,下面這篇文章主要給大家介紹了關于MySQL常見內(nèi)置函數(shù)以及其使用的相關資料,需要的朋友可以參考下
    2022-12-12
  • SQL常見函數(shù)整理之Format將日期、時間和數(shù)字值格式化

    SQL常見函數(shù)整理之Format將日期、時間和數(shù)字值格式化

    最近項目總是寫sql查詢時間,數(shù)據(jù)庫存的時間有各種格式,下面這篇文章主要給大家介紹了關于SQL常見函數(shù)整理之Format將日期、時間和數(shù)字值格式化的相關資料,需要的朋友可以參考下
    2024-01-01
  • 在windows環(huán)境下配置并隨意切換兩種mysql版本的方法

    在windows環(huán)境下配置并隨意切換兩種mysql版本的方法

    這篇文章主要介紹了mysql:如何在windows環(huán)境下配置并隨意切換兩種mysql版本,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • windows系統(tǒng)mysql5.7.18安裝圖文教程

    windows系統(tǒng)mysql5.7.18安裝圖文教程

    這篇文章主要為大家詳細介紹了windows系統(tǒng)下mysql5.7.18安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 解決Navicat遠程連接MySQL出現(xiàn) 10060 unknow error的方法

    解決Navicat遠程連接MySQL出現(xiàn) 10060 unknow error的方法

    這篇文章主要介紹了解決Navicat遠程連接MySQL出現(xiàn) 10060 unknow error的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 解決MySQL遇到錯誤:1217 - Cannot delete or update a parent row: a foreign key constraint fails

    解決MySQL遇到錯誤:1217 - Cannot delete or 

    這篇文章主要介紹了解決MySQL遇到錯誤:1217 - Cannot delete or update a parent row: a foreign key constraint fails問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Windows安裝MySQL8.0.28.0.msi方式(圖文詳解)

    Windows安裝MySQL8.0.28.0.msi方式(圖文詳解)

    這篇文章主要介紹了Windows安裝MySQL8.0.28.0.msi,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • mysql數(shù)據(jù)庫日志binlog保存時效問題(expire_logs_days)

    mysql數(shù)據(jù)庫日志binlog保存時效問題(expire_logs_days)

    這篇文章主要介紹了mysql數(shù)據(jù)庫日志binlog保存時效問題(expire_logs_days),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • mysql如何設置不區(qū)分大小寫

    mysql如何設置不區(qū)分大小寫

    在本篇文章里小編給大家整理了關于mysql設置不區(qū)分大小寫的方法,需要的朋友們跟著學習下。
    2020-06-06

最新評論