MySQL架構備份

MySQL Replication 概述

集羣的主要類型?

高可用集羣(High Available Cluster, HA)html

高可用集羣是指經過特殊的軟件把獨立的服務器鏈接起來,組成一個可以提供故障切換(Fail Over)功能的集羣sql

如何衡量高可用?

99.53%        7天           常規系統
99.98%        8小時         可用系統
99.99%        52.6分鐘      高可用系統
99.999%       5.3分鐘       抗故障系統
99.9999%      32秒          容錯系統

MySQL經常使用的集羣架構

MySQL Replication數據庫

MySQL Cluster服務器

MySQL Group Replication (MGR) 5.7.17架構

MariaDB Galera Cluster異步

Keepalived|HeartBeat||Lvs,Haproxy等技術構建高可用集羣spa

什麼是 MySQL Replication?

一、Replication能夠實現將數據從一臺數據庫服務器(master)複製到一臺到多臺數據庫服務器上(slave)線程

二、默認狀況下,屬於異步複製,因此無需維持長鏈接日誌

複製拓撲:code

MySQL Replication的原理

簡單來講,master將數據庫的改變寫入二進制日誌,slave同步這些二進制日誌,並根據二進制日誌進行數據重演操做,實現數據異步同步

1. 在主庫上把數據更改(DDL DML DCL)記錄到二進制日誌(Binary Log)中。
2. 備庫I/O線程將主庫上的日誌複製到本身的中繼日誌(Relay Log)中。
3. 備庫SQL線程讀取中繼日誌中的事件,將其重放到備庫數據庫之上。

MySQL Replication的架構

master —> slave (雙機熱備)

默認狀況下,master接收讀寫請求,slave只接收讀請求以減輕master的壓力

複製的過程:

一、slave端的IO線程連上master端,請求

二、master端返回給slave端,bin log文件名和位置信息

三、IO線程把master端的bin log 內容依次寫到slave端relay bin log(中繼日誌)裏,並把master端的bin-log文件名和位置記錄到master.info裏

四、slave端的sql線程,檢測到relay bin log中內容更新,就會解析relay log 裏更新的內容,並執行這些操做

M--S 雙機熱備實驗 > 點我

master —> slave1 —> slave2 (級聯架構)

優勢:進一步分擔讀寫力

缺點:slave1 出現故障,後面的全部級聯slave服務器都會同步失敗

M--S--S 級聯架構實驗 > 點我

master —> (slave1 slave2) (並聯架構)

                /----> slave1
  master                          (並聯架構)
                \----> slave2

優勢:解決上面的slave1的單點故障,同時也分擔讀壓力

缺點:間接增長master的壓力(傳輸二進制日誌壓力)

master1 <------> master2 (互爲主從)

優勢:從命名來看,兩臺master好像都能接受讀、寫請求,但實際上,每每運做的過程當中,同一時刻只有其中一臺master會接受寫請求,另一臺接受讀請求

示例:
create table aaa;
m:                          s:
bin-log   -------->   io(relay-bin-log)
                          sql create table aaa;

把主上的二進制日誌(bin-log)的內容傳到從上的一個新的日誌叫relay-bin-log
從上的 IO 線程 負責傳輸
從上的 SQL 線程 負責從服務器解析日誌

如果雙master架構,則兩邊都得開啓binlog和relarylog中繼日誌

相關文章
相關標籤/搜索