1. 程式人生 > >OLTP應用之MySQL架構選型 圖文教程

OLTP應用之MySQL架構選型 圖文教程

方案,才能真正的具備可參考性與實際意義。下面我們來扒一扒筆者目前考慮到適合OLTP應用開源解決方案。
方案一、多主同步複製方案PXC
PXC,即Percona Xtradb Cluster,它採用Galera引擎,可以實現多個節點間的資料同步複製以及讀寫並且可保障資料庫的服務高可用及資料一致性。其架構如下所示:

一、 PXC的優點
(1) 資料同步複製
(2) 多個可同時讀寫節點,但需要事先進行分庫分表,讓各個節點分別寫不同的表或者庫
(3) 可以保證資料嚴格一致性
(4) 適合讀多寫少的業務系統
二、 PXC的缺點
(1) 不支援XA事務
(2) 叢集吞吐量/效能取決於響應最慢的節點,事務效率與主從架構相比低了不止一個數量級
(3) 需要調整
(4) 只支援InnoDB引擎
(5) 所有表都要有主鍵
(6) 不允許大事務產生
(7) 不支援LOCK TABLE等顯式鎖操作
(8) 存在寫衝突,鎖衝突、死鎖問題較多,不能解決熱點更新問題,可擴充套件性差
(9) 如果併發事務量很大的話,官方建議採用InfiniBand網路,降低因網路延遲帶來的瓶頸
(10) 需要引入多個第三方外掛,整合複雜度高
方案二、主從複製方案MHA

MHA即Master High Availability Manager and Tools for MySQL是一個MySQL高可用管理工具,目的在於維持Master主庫的高可用性及資料的一致性。根據資料庫培訓其最大特點是可以修復多個Slave之間的差異日誌,最終使所有Slave保持資料一致,然後從中選擇一個Slave資料庫作為新的Master,並將其它Slave指向它。
   其架構如下,請參考:

一、 MHA的優點
1. 自動監控Master故障轉移、故障後節點之間的資料同步
2. 不會有效能損耗,適用於任何儲存引擎
3. 具備自動資料補償能力,在主庫異常崩潰時能夠最大程度的保證資料的一致性
4. 可實現同城應用級別雙活
二、 MHA的缺點
1. 如果主伺服器硬體故障或無法通過ssh訪問,進行故障轉移可能導致丟失當前資料
2. 切換時間較長,整個切換時間大約需要9-12s
方案三、主主複製方案MM

利用MySQL原生支援主從單向複製、主主雙向複製,該架構解決了主庫單點及寫瓶頸等問題。 其架構如下,請參考:

一、 MM架構優點
1. 支援快速切換,一般3s之內即可切換到備機
2. 配置管理簡單、不需要第三方外掛
二、 MM架構缺點
1. 如果資料庫伺服器硬體故障可能導致丟失當前操作資料
關於以上方案的總結
(一)對於PXC架構,其優點很多但缺點同時也非常的明顯,其核心優勢就是保證了各節點資料的一致性,劣勢就是其在可擴充套件性、鎖衝突、寫擴大方面存在問題,PXC為了保證資料的一致性其要求每個節點都要將資料寫入到磁碟才算完成,這樣就存在一個效率問題。也就是說每個事務的響應時間依賴於整個叢集最慢的節點,且其對網路質量要求非常高。另一個問題就是我們需要考慮清楚,我們的開源的方向在哪裡?是跟著一個小眾分支開源社群Percona,還是跟著主流MySQL官方開源社群發展的問題。
(二)對於MHA架構其優點就是通過MHA外掛解決主庫的單點問題及因主庫掛掉後儘量保證接管的從庫與宕機後的主庫的資料一致性且資料的同步功能是原生的,其缺點就是在主庫故障切換後不能保證資料零丟失,其實這裡更準確的說法不應該是資料丟失應該主庫與從庫資料不一致。
在以下情況MHA可以保證接管後的節點與主庫資料時一致性的:
(1) 在不發生硬體故障的情況下是可以從修復後的主庫找回資料並由DBA手動補回備庫,最終實現資料的一致性;
(2) 若只是資料庫故障,MHA具備將所有已落實的資料自動同步到備庫從而實現資料的零丟失;
(3) 直接使用MySQL的半同步機制,兩階段提交來保證資料的一致性,這個方法與PXC的實現方式相似
(三)對於MM雙主架構其優缺點與MHA相似,都是採用MySQL原生的資料同步機制。不同之處就是MM架構在主故障時切換時間更短,缺點就是產生資料不一致的可能性更多一下。另外在MM架構中我們也可以嘗試引入MHA資料補償工具來儘量降低在主備切換時導致的資料不一致性問題或者直接使用MySQL的半同步機制來保證資料一致性。

相關推薦

OLTP應用MySQL架構選型 圖文教程

方案,才能真正的具備可參考性與實際意義。下面我們來扒一扒筆者目前考慮到適合OLTP應用開源解決方案。方案一、多主同步複製方案PXC PXC,即Percona Xtradb Cluster,它採用Galera引擎,可以實現多個節點間的資料同步複製以及讀寫並且可保障資料庫的服務高可用及資料一致性。其架構如下所示:

Windows下安裝MySQL 6.0圖文教程

         由於免費,MySQL資料庫在專案中用的越來越廣泛,而且它的安全效能也特別高,不亞於oracle這樣的大型資料庫軟體。可以簡單的說,在一些中小型的專案中,使用MySQL ,PostgreSQL是最佳的選擇。今天就來說一下MySQL的安裝過程。          這裡就不說具體上什麼地方下載My

Linux 典型應用Mysql

leg down cati ner bsp oba res 驗證機制 鏈接地址 Mysql 的安裝及連接 刪除默認安裝的 mariadb數據庫 yum remove mariadb-libs.x86_64    mysql源下載的網址 https

燕十八PHP高效能架構mysql優化教程

課程簡介: 本課程為PHP高效能架構班系列課程中的mysql優化部分教程,由燕十八主講。課程通過16課時(共32課)來詳解mysql的優化技術,幫助大家在實際使用過程中來提升mysql的效能,從而節約成本、提高效率。 課程講師:燕十八 講師介紹: 燕十八

MySQL 5.6 (Win7 64位)下載、安裝與配置圖文教程

服務 建立 basedir 字長 目錄 之前 配置環境 改名 一次 一. 工具 Win7 64位操作系統 二. 步驟 第一步:下載安裝包 下載 地址:http://www.mysql.com/ 截止到目前(2016/7/24) ,官網的最新版本是5.7.13

VS InstallShield Limited Edition for Visual Studio 2015 圖文教程

安裝使用 全部 文件夾 安裝步驟 一行 ive format 徹底 ins 從Visual Studio 2012開始,微軟就把自家原來的安裝與部署工具徹底廢掉了,轉而讓大家去安裝使用第三方的打包工具“InstallShield Limited Edition

MySQL架構MHA架構實戰

fault arc 獨立 支持 ignore llb ssh 啟動 pda 一、MHA原理 1、簡介: MHA(Master High Availability)目前在MySQL高可用方面是一個相對成熟的解決方案,它由日本DeNA公司youshimaton(現就職於Face

java精品高級架構課,RocketMQ中間件,Mysql分布式集群,服務架構,運維架構視頻教程

大型 mys 互聯網公司 課程 enter 20px hcl 理解 bin 14套java精品高級架構課,緩存架構,深入Jvm虛擬機,全文檢索Elasticsearch,Dubbo分布式Restful 服務,並發原理編程,SpringBoot,SpringCloud,Ro

MySQLMHA架構的介紹

介紹 book 建議 三臺 系統 解決方案 只需要 nts 接受 一、前言: 1.1 MHA介紹 MHA(Master High Availability)目前在MySQL高可用方面是一個相對成熟的解決方案,它由日本DeNA公司youshimaton(現就職於Faceboo

mysqlMHA架構

mes width 日常 谷歌 log-bin height mha ould hup 角色Ip地址主機名Server id類型master192.168.1.131master11主(寫)Master(candicate)192.168.1.132Master22從(讀)

MySQL架構備份雙機熱備

root .gz val 數據初始化 無法 ceshi 修改配置文件 rom ESS M--S架構:實現雙機熱備(AB復制) 1、可以降低master讀壓力 2、可以對數據庫做“熱備”,熱備只能解決硬件master硬件故障,軟件故障等重大故障問題

mysql-5.7.16-winx64解壓版安裝超詳細圖文教程

基本 再次 data 就是 left 新的 edi 文件的 文件夾 1.安裝: 將下載的mysql-5.7.16-winx64壓縮包解壓後的整個目錄放在自己喜歡的位置,我的放在D盤根目錄下 2.配置: 進入mysql-5.7.16-winx64目錄,將裏面

Spring Cloud 進階路 -- Eureka Server 端從0開始搭建圖文教程

  Spring Cloud Eureka 能實現服務的註冊和發現,下面使用IntelliJ IDEA + maven 從0開始搭建 Eureka Server。   1、新建專案,選擇 Spring Initializr,JDK 1.8,選擇預設的 https:

大規模分散式應用海量資料和高併發解決方案總結視訊教程網盤

大規模分散式應用之海量資料和高併發解決方案總結視訊教程網盤 39套Java架構師,高併發,高效能,高可用,分散式,叢集,電商,快取,微服務,微信支付寶支付,公眾號開發,java8新特性,P2P金融專案,程式設計,功能設計,資料庫設計,第三方支付,web安全,效能調優,設計模式,資料結構,併發程式

MySQL架構keepalived+haproxy+mysql

MySQL的高可用方案一般有如下幾種:keepalived+雙主,MHA,PXC,MMM,Heartbeat+DRBD等,比較常用的是keepalived+雙主,MHA和PXC。 HAProxy是一款免費的提供高可用性、負載均衡以及基於TCP(第四層)和HTTP(第七層)應用的代理軟體,藉助HAProxy可

Mysql基礎教程mysql 設定引數常用方法

1)設定mysql的全域性方法,設定完立刻重啟mysqlvim /etc/my.cnf[mysqld]interactive_timeout=1800wait_timeout=1800 全域性永久生效現在資料庫中設定,在修改檔案等需要重啟資料庫的時候在重啟mysqlset global interactiv

MYSQL學習筆記02】MySQL的高階應用Explain(完美詳細版,看這一篇就夠了)

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/wx1528159409 最近學習MySQL的高階應用Explain,寫一篇學習心得與總結,目錄腦圖如下: 一、Explain基本概念 1. Explain定義 · 我們知道M

資料庫選型MySQL vs ElasticSearch

前言   應用系統通常需要藉助資料預處理(如物化檢視等)來實現資料查詢加速的需求。目前業界主流資料庫主要有以下兩大類,一種是基於傳統RDBMS關係型資料庫來實現;另一種是基於NoSQL非關係型資料庫來實現。那麼問題來了,哪一種型別的資料庫更符合產品的需要呢?   開源技術

mysql installer community 8.0.12.0安裝圖文教程

本文教程為大家分享了mysql installer community 8.0.12.0的安裝,供大家參考 一、下載mysql-installer-community-8.0.12.0.msi 點選 :下載連結 二、安裝mysql-installer-community-8.0.12.0

架構應用高可用、高複用

架構應用之高可用、高複用 。   一、儲存高可用 儲存的高可用,主要是通過資料冗餘的方式來實現高可用,複雜性主要是在如何保持資料一致性,複製延遲和網路中斷都會帶來資料不一致。主要考慮的就是,資料如何複製,如何應對複製延遲,如何應對複製中斷,各個節點的職責是什麼。