天天看點

mysql技術--精簡版mysql總結3、M-S-S架構(解決主從I/O壓力集中問題)4、M-M架構(互為主備)5、M-M-M架構6、MHA架構7、優化8、備份優化

mysql總結

  • 四大特性
  • 主從複制
  • M-S-S架構
  • M-M架構
  • M-M-M架構
  • MHA架構
  • 讀寫分離
  • 備份
  • 優化

1、 四大特性

(1)原子性:事務是一個不可分割的整體,事務開始操作、要麼全部執行,要麼全部不執行。

(2)隔離性:同一時間,隻允許一個事務請求統一組資料。不同僚物彼此之前沒有幹擾

(3)一緻性:事務開始前和結束後,資料庫的完整性限制沒有被破壞

(4)穩定性:事務完成後,事務對資料庫的所有更新将被儲存到資料庫,不能復原

2、主從複制

場景:當資料需要備份時,采用此架構。可不使用mysqldump指令手動備份,節約時間成本主伺服器插入資料,從伺服器跟着複制。主伺服器down了從伺服器資料存有備份,這種架構也可以實作讀寫分離,分擔主伺服器的讀寫壓力。

1、原理:

(1)主伺服器:需要開啟一個二進制(binlog日志),在這台伺服器上所插入的每條sql都會記錄到日志當中

(2)從伺服器:進行重放,主要用I/O線程和sql線程來進行複制。I/O線程負責拉取日志、SQL線程進行重放

缺點:從伺服器壓力過多,壓力大。從去主拉去日志,會造成I/O壓力集中的問題

2、主從複制模式

(1)複制狀态預設是異步複制

優點:效率高,主接收到寫請求,不需要等待從複制完資料

缺點:不一定能搞保證可靠性

(2)同步複制

優點:可靠性高,主收到寫請求,等待所有從複制完,在傳回結果。

缺點:效率差

(3)半同步複制(兼顧效率和可靠性)

優點:主收到寫請求,隻需等待一台從複制完成之後。再傳回結果

3、M-S-S架構(解決主從I/O壓力集中問題)

場景:主從複制叢集,如果出現一個主多個從的情況,會造成主的資源壓力較大。這種情況采用M-S-S架構解決

1、原理

(1)主伺服器負責接收寫請求

(2)中繼伺服器負責拉去主的binlog日志,但是不進行重放。也就是說中繼伺服器不存儲任何資料,隻留存記錄日志内容(使用Black-hole黑洞引擎)保證本地不存儲任何資料

(3)從伺服器隻需到中繼伺服器拉去binlog日志在本地重放

關系:

M-S-S===主-中繼-從

(1)中繼的master是主伺服器(主伺服器為中繼伺服器服務)

(2)從伺服器的master是中繼伺服器(中繼伺服器為從伺服器服務)

4、M-M架構(互為主備)

場景:不建議使用

優點:最大保證資料的安全性

缺點:沒有好處,可能越做越爛(資料亂),性能也有可能下降

5、M-M-M架構

優點:故障轉移對新主的重新同步資料

缺點:主從切換時,容易造成資料丢失

6、MHA架構

作用:主伺服器壞掉時,可以故障切換

例子:四台伺服器、MHA管理節點、主節點、從節點、從節點

MHA節點需要安裝MHA Manger軟體、其他節點需要安裝MHA node軟體。

所有節點需要做免密登入:因為MHA管理節點需要到各個節點去進行故障切換
所有節點需要建立一個對mysql所有權限的賬号:如果故障切換,需要用的此賬号進行指定新的主
所有節點需要建立一個複制權限的一個賬号:用于複制

到此為止:有一個缺點(可使用腳本完善缺點)
如果你的主伺服器進行故障切換、那麼用戶端寫入請求找不到新的主了。
這時候會有一個VIP的一個概念,這個vip位址會在你的主上。
那麼這樣用戶端隻需通路這個vip位址進行寫操作,不會出現找不到住的情況
           

7、優化

場景:用戶端讀寫請求非常大的情況下,會對你的主造成一定的壓力。主要因為讀請求會造成壓力較大,而且費時。

讀寫分離主要流程:寫請求交給主、讀請求交給從。中間用一個mycat來排程。

(1)主伺服器(負責寫):使用InnoDB引擎,适用于寫多讀少(行級鎖)

(2)從伺服器(負責讀):使用Mysiam引擎,适用于讀多寫少(表集鎖)

8、備份

模式:全備、差異備份、增量備份

(1)全備:将所有的資料庫進行備份

(2)差異備份:基于全備進行備份增加的部分(浪費空間),還原友善,隻需将全備和最後一次差異備份合并即可

(3)增量備份:根據全備,隻備份添加部分的資料。(節省空間),還原麻煩,需要将多次增量備份按順序進行合并

備份工具

(1)Xbackup邏輯備份:從資料庫導出來的資料,另存為到一個或多個檔案夾當中并将資料轉換為具體的SQL語句

(2)流程:

先做一次全備、然後基于全備做增量備份指定好上次的位置(LSN碼)、還原的時候,記得把檔案的數組和屬組改為mysql程式運作賬戶

備份狀态

(1)熱備:讀寫情況下,可以備份 指令:xbackup

(2)溫備:讀情況下,可備份 指令:mysqldump

(3)冷備:讀寫不可操作,可備份 指令:cp、tar…

優化

硬體優化:

(1)cpu64位、高主頻、高緩存

(2)記憶體–大記憶體、主頻高

(3)硬碟—reid10或5

(4)網絡–标配千兆網卡

查詢優化

(1)建立表時結構要合理,每個表不宜過大

(2)建立索引、提高查詢速度

(3)查詢緩存、将查詢的結果儲存在記憶體當中,會極大的提高性能(預設禁用)

存儲引擎優化

(1)Myisam引擎:表級鎖,影響範圍大,适用于讀多寫少

(2)InnoDB引擎:行級鎖,影響範圍小,适用于寫多讀少