MySQL Group Replication小試
最近看了下MySQL Group Replication的內容,因為釋出的時間不是很長,可以算是一個新鮮玩意,而且因為它特有的意義,這個特性顯得更加意味深長。
我接觸Oracle的時間要長一些,所以很多時候都喜歡帶著對比的眼光來看,單著自己嘗試著用了下這個特性,感覺一下子讓我找到了當年學習Oracle 10g RAC時的感覺,裡面還是有一些小問題,而且還不少,眼巴巴的看著報錯,但是日誌又很有限,查閱資料,竟然不是bug就是找不到一些相關的資訊,所以有時候有種資訊孤島的感覺。
官網的資料自己也看了好幾遍,在自己在電腦環境中也模擬了不下十次,每次感覺都是差一點,有一些讓人感覺不大滿意的地方,我覺得在這方面的付出可真不比Oracle少,而且我也知道這個新特性要達到成熟到普及,還需要時日。這個過程總是讓人難忘而且艱辛。
首先這個特性,使得MySQL和Oracle體量更加接近,看看下載的二進位制包就讓人手裡一抖,壓塑包600多M,但是解壓後竟然有差不多2.6G.
# du -sh ./*
2.6G ./mysql-5.7.17-linux-glibc2.5-x86_64
625M ./mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
如果仔細往下看,就會發現裡面group replication的部分佔用的空間確實不少。
我想下面的這個圖,如果要看group replication都要說上一段,各類部落格中都有自然引用到,原來來自於官網的解讀。
從原生的Replication過渡到外掛式的半同步,再到Group Replication,真是一個很大的進步,高可用方案隨著這個技術的成熟相比也會逐漸成為一種趨勢,從Galera到後面Percona包裝的PXC,從Group replication的角度再回頭來看,竟然發現是如此相似。Galera的作者都是一批20多年實戰經驗的老鳥,在技術成熟度方面肯定完全不遜於官方。所以選擇哪一個或者哪一個更成熟,到時候會是擺在MySQL DBA面前的一個艱難的選擇。
然後再來一張圖。MySQL 外掛的結構圖。
MySQL的這個高可用方案是一個share nothing的架構,這樣也就使得整個架構是一個強一致性的設計方式,自然會用到組播的方式。
Oracle中搭建RAC需要一個叢集軟體,早期是可選第三方,後來統一為Oracle專供,也就是後來所說的Grid Infrastrue,不光整合力叢集軟體,ASM的部分也整合進去了,有點強拆的感覺。MGR的模式目前是推薦單主的形式,即讀寫分離的方式,也可以做到多主。
MySQL Group Replication中的這個部分是由Corosync來實現的,corosync的由來是源於一個Openais的專案,可以實現HA心跳資訊傳輸的功能,是眾多實現HA叢集軟體中之一,在MGR早起的實驗室版本還需要特意關注這部分的資訊,特意的設定和配置使得叢集環境能夠穩步執行,MGR也是包含了繫結corosync的介面,這個介面實際上是corosync到client API的一個隱式對映。
由此我也看到了幾個不錯的解決方案,
我接觸Oracle的時間要長一些,所以很多時候都喜歡帶著對比的眼光來看,單著自己嘗試著用了下這個特性,感覺一下子讓我找到了當年學習Oracle 10g RAC時的感覺,裡面還是有一些小問題,而且還不少,眼巴巴的看著報錯,但是日誌又很有限,查閱資料,竟然不是bug就是找不到一些相關的資訊,所以有時候有種資訊孤島的感覺。
官網的資料自己也看了好幾遍,在自己在電腦環境中也模擬了不下十次,每次感覺都是差一點,有一些讓人感覺不大滿意的地方,我覺得在這方面的付出可真不比Oracle少,而且我也知道這個新特性要達到成熟到普及,還需要時日。這個過程總是讓人難忘而且艱辛。
首先這個特性,使得MySQL和Oracle體量更加接近,看看下載的二進位制包就讓人手裡一抖,壓塑包600多M,但是解壓後竟然有差不多2.6G.
# du -sh ./*
2.6G ./mysql-5.7.17-linux-glibc2.5-x86_64
625M ./mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
如果仔細往下看,就會發現裡面group replication的部分佔用的空間確實不少。
我想下面的這個圖,如果要看group replication都要說上一段,各類部落格中都有自然引用到,原來來自於官網的解讀。
從原生的Replication過渡到外掛式的半同步,再到Group Replication,真是一個很大的進步,高可用方案隨著這個技術的成熟相比也會逐漸成為一種趨勢,從Galera到後面Percona包裝的PXC,從Group replication的角度再回頭來看,竟然發現是如此相似。Galera的作者都是一批20多年實戰經驗的老鳥,在技術成熟度方面肯定完全不遜於官方。所以選擇哪一個或者哪一個更成熟,到時候會是擺在MySQL DBA面前的一個艱難的選擇。
然後再來一張圖。MySQL 外掛的結構圖。
MySQL的這個高可用方案是一個share nothing的架構,這樣也就使得整個架構是一個強一致性的設計方式,自然會用到組播的方式。
Oracle中搭建RAC需要一個叢集軟體,早期是可選第三方,後來統一為Oracle專供,也就是後來所說的Grid Infrastrue,不光整合力叢集軟體,ASM的部分也整合進去了,有點強拆的感覺。MGR的模式目前是推薦單主的形式,即讀寫分離的方式,也可以做到多主。
MySQL Group Replication中的這個部分是由Corosync來實現的,corosync的由來是源於一個Openais的專案,可以實現HA心跳資訊傳輸的功能,是眾多實現HA叢集軟體中之一,在MGR早起的實驗室版本還需要特意關注這部分的資訊,特意的設定和配置使得叢集環境能夠穩步執行,MGR也是包含了繫結corosync的介面,這個介面實際上是corosync到client API的一個隱式對映。
由此我也看到了幾個不錯的解決方案,
corosync+pacemaker+mysql+drbd 實現mysql的高可用,可以參考http://litaotao.blog.51cto.com/6224470/1303307
還有搭建Group Replication很有想法的一個實踐,就是先配置gtid,然後切換到group replication,使得這個過程更加平滑。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-2139631/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL Group ReplicationMySql
- MGR(MySQL Group Replication)部署搭建測試MySql
- MySQL group replication介紹MySql
- 【Mysql】MySQL5.7.17- Group Replication搭建MySql
- Mysql 5.7 基於組複製(MySQL Group Replication) - 運維小結MySql運維
- MySQL Group Replication 學習(部署篇)MySql
- MYSQL Group Replication搭建過程記錄MySql
- 配置Mysql Group Replication遇到的問題筆記MySql筆記
- MySQL8.0.16新特性:The Communication Protocol In Group ReplicationMySqlProtocol
- MySQL 5.7組複製(group replication)的要求和限制MySql
- MySQL 5.7.17 組複製(group replication)的要求和限制MySql
- group_replication_bootstrap_group 用於什麼boot
- 分分鐘搭建MySQL Group Replication測試環境(r11筆記第83天)MySql筆記
- 分分鐘搭建MySQL Group Replication測試環境(二)(r12筆記第41天)MySql筆記
- Build mysql replicationUIMySql
- Mysql Replication(轉)MySql
- 使用ProxySQL實現MySQL Group Replication的故障轉移、讀寫分離(一)MySql
- 系統變數group_replication_group_seeds為空導致MySQL節點無法啟動組複製變數MySql
- 動態建立MySQL Group Replication的節點(r11筆記第84天)MySql筆記
- MySQL案例-replication"卡死"MySql
- 【MySQL】Semisynchronous Replication 概述MySql
- MySQL Replication淺析MySql
- On MySQL replication, again…MySqlAI
- An Overview of PostgreSQL & MySQL Cross ReplicationViewMySqlROS
- Mysql replication check指令碼MySql指令碼
- mysql replication之GTIDMySql
- 多主一從mysql replication同步表的大膽嘗試.MySql
- 【恩墨學院】深入剖析 Group Replication核心的引擎特性
- MySQL基於GTIDs的MySQL ReplicationMySql
- mysql replication /mysql 主從複製原理MySql
- 【MySql】MySQL Replication Fatal Error 1236MySqlError
- Mysql Replication學習記錄MySql
- 理解 MySQL(3):複製(Replication)MySql
- MySQL now supports an interface for semisynchronous replication:MySql
- MySQL Replication ConfigurationMySql
- mysql replication常見錯誤MySql
- MySQL Replication常見錯誤整理MySql
- mysql replication複製錯誤(zt)MySql