偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

老司機帶你在MySQL領(lǐng)域“大吉大利,晚上吃雞”

數(shù)據(jù)庫 MySQL
本章介紹MySQL官方推薦的一款高可用集群方案MySQL Group Replication。簡稱:MGR(組復(fù)制)。它是官方推出的一種基于Paxos協(xié)議的狀態(tài)機復(fù)制,徹底解決了基于傳統(tǒng)的異步復(fù)制和半同步復(fù)制中數(shù)據(jù)一致性問題無法保證的情況。

最近絕地求生這個游戲太火了,當(dāng)我問我的朋友們你們閑時在干嘛,基本上告訴我的答案都是在"吃雞"啊!想必很多老鐵們也玩,那一定應(yīng)該知道絕地求生中有把槍叫AWM。此槍傷害裸132點,爆頭330,即使三級頭爆頭必死,無防彈衣或者防彈衣有破損,一槍死。是這個游戲中威力最大的狙擊×××,足足是98K的兩倍。

那么在MySQL領(lǐng)域有沒有這么一把威力超大的“槍”呢~答案是必須有?。〉蠌埾葐柲銈円粋€問題。

請問你搭建MySQL復(fù)制的時候,還在執(zhí)行備份恢復(fù),在從庫進行change master to的操作嘛?如果是那你可就真的落后了。

本章介紹MySQL官方推薦的一款高可用集群方案MySQL Group Replication。簡稱:MGR(組復(fù)制)。它是官方推出的一種基于Paxos協(xié)議的狀態(tài)機復(fù)制,徹底解決了基于傳統(tǒng)的異步復(fù)制和半同步復(fù)制中數(shù)據(jù)一致性問題無法保證的情況。也讓MySQL數(shù)據(jù)庫涉及的領(lǐng)域更廣,徹底擁有了打開互聯(lián)網(wǎng)金融行業(yè)的大門。2016年12月 MySQL Group Replication推出了第一個GA版本發(fā)布在MySQL5.7.17中。但目前直接投入到生產(chǎn)環(huán)境中使用,風(fēng)險還是比較大。建議等其越來越成熟之后,我們再真正投入使用。

隨著MySQL8.0版本即將與我們見面,再配合官方逐漸成熟的高可用集群 Group Replication方案,到那時再看看誰還是我們MySQL的對手,全都不在了!MySQL數(shù)據(jù)庫就是作者的信仰,愛你無怨無悔。

MGR組復(fù)制原理

先來談?wù)勈裁唇凶鼋M復(fù)制。組復(fù)制是一種可用于實現(xiàn)容錯系統(tǒng)的技術(shù)。復(fù)制組是一個通過消息傳遞相互交互的server集群。復(fù)制組由多個server成員組成,如下圖的master1,master2,master3,所有成員獨立完成各自的事務(wù)。當(dāng)客戶端先發(fā)起一個更新事務(wù),該事務(wù)先在本地執(zhí)行,執(zhí)行完成之后就要發(fā)起對事務(wù)的提交操作了。在還沒有真正提交之前需要將產(chǎn)生的復(fù)制寫集廣播出去,復(fù)制到其他成員。如果沖突檢測成功,組內(nèi)決定該事務(wù)可以提交,其他成員可以應(yīng)用,否則就回滾。最終,這意味著所有組內(nèi)成員以相同的順序接收同一組事務(wù)。因此組內(nèi)成員以相同的順序應(yīng)用相同的修改,保證組內(nèi)數(shù)據(jù)強一致性。

 

MGR組復(fù)制模式

組復(fù)制可以在兩種模式下運行。 在單主模式下,組復(fù)制具有自動選主功能,每次只有一個 server成員接受更新,其他成員只提供讀服務(wù)。在多主模式下運行時,所有的 server 成員都可以同時接受更新,沒有主從之分,成員角色是完全對等的。 組復(fù)制默認(rèn)情況下是單主模式,我們可以通過設(shè)置參數(shù)group_replication_single_primary_mode=off,讓其變成多主模式。本章的實戰(zhàn)部分就是以多主模式進行MGR復(fù)制的搭建。

MGR特性介紹

  1. 完成了真正的多節(jié)點讀寫的集群方案。
  2. 基于原生復(fù)制及paxos協(xié)議的組復(fù)制技術(shù),并以插件的方式提供,實現(xiàn)了數(shù)據(jù)的強一致性
  3. 由于是多節(jié)點讀寫,failover切換變得更加簡單
  4. 增加刪除節(jié)點,自動完成同步數(shù)據(jù)和更新組內(nèi)信息的操作。擴展性地增強

雖然在MGR的多主模式下,受到不能支持串行隔離級別和不支持外鍵級聯(lián)操作的限制條件。而且目前MySQL版本中對DDL語句操作無法實現(xiàn)回滾,導(dǎo)致MGR無法對DDL語句做數(shù)據(jù)沖突檢驗,所以DDL語句在MGR中并發(fā)執(zhí)行存在隱患。但這些都不能阻擋MGR的發(fā)布所帶來的開創(chuàng)新時代的意義。讓我們一起期待這個追求極致完美的MySQL數(shù)據(jù)庫,未來更加璀璨奪目。

MGR搭建實戰(zhàn)演練

環(huán)境介紹:這里我們準(zhǔn)備三個節(jié)點,數(shù)據(jù)庫版本使用MySQL5.7.17

數(shù)據(jù)庫IP地址 數(shù)據(jù)庫版本信息 主機名 Server-id

 

192.168.56.101  MySQL-5.7.17    node2   1013306
192.168.56.102  MySQL-5.7.17    node3   1023306
192.168.56.103  MySQL-5.7.17    proxysql    1033306

 

實戰(zhàn)第1步:

在三個節(jié)點上執(zhí)行安裝MySQL5.7操作。(此步省略,詳情請見書中第一部分第二章)

實戰(zhàn)第2步:

在三個節(jié)點上分別設(shè)置hostname和ip地址的映射關(guān)系

老司機帶你在MySQL領(lǐng)域“大吉大利,晚上吃雞”

實戰(zhàn)第3步:

在三個節(jié)點上分別創(chuàng)建復(fù)制賬號,命令如下

 

  1. GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.56.%' IDENTIFIED BY '123456'

實戰(zhàn)第4步:

在三個節(jié)點上分別安裝GR插件,命令如下

 

  1. INSTALL PLUGIN group_replication SONAME 'group_replication.so'

組件安裝完成之后,展示結(jié)果:

 

  1. root@db 13:23:  [(none)]> show plugins; 

老司機帶你在MySQL領(lǐng)域“大吉大利,晚上吃雞”

實戰(zhàn)第5步:

在三個節(jié)點分別配置各自的集群參數(shù)文件,配置完成之后重啟數(shù)據(jù)庫

192.168.56.101參數(shù)文件配置展示:(剩下兩個節(jié)點同理)

Group Replication

 

  1. server_id = 1013306  
  2. gtid_mode = ON  
  3. enforce_gtid_consistency = ON  
  4. master_info_repository = TABLE  
  5. relay_log_info_repository = TABLE  
  6. binlog_checksum = NONE  
  7. log_slave_updates = ON  
  8. log_bin = binlog  
  9. binlog_format= ROW  
  10. transaction_write_set_extraction = XXHASH64  
  11. loose-group_replication_group_name = '1f2cee29-f9a2-11e7-8cbb-08002783b39d'  
  12. loose-group_replication_start_on_boot = off  
  13. loose-group_replication_local_address = 'node2:33061'  
  14. loose-group_replication_group_seeds ='node2:33061,node3:33062,proxysql:33063'  
  15. loose-group_replication_bootstrap_group = off  
  16. loose-group_replication_single_primary_mode=off   
  17. loose-group_replication_enforce_update_everywhere_checks=true 

 

重點參數(shù)詳解:(一定要記住這些)

MGR一定要開啟GTID功能gtid_mode = ON,enforce_gtid_consistency = ON

MGR在當(dāng)前MySQL版本中,必須要設(shè)置binlog_checksum=none,并且binlog_format=row

MGR需要多源復(fù)制功能,所以需要將主從庫之間的信息記錄到表中。設(shè)置master_info_repository = TABLE和relay_log_info_repository = TABLE

MGR中開啟主鍵信息采集功能:transaction_write_set_extraction= XXHASH64

MGR中把該參數(shù)group_replication_single_primary_mode關(guān)閉目的是搭建多主模式。如果搭建單主模型,保持默認(rèn)參數(shù)即可。

MGR中需要設(shè)置組的名字,該group_replication_group_name是通過select uuid()來生成的。

MGR中本地成員的地址由該參數(shù)group_replication_local_address決定,本例中當(dāng)前節(jié)點是node2。后面的端口是每個節(jié)點都需要一個獨立的tcp端口號,節(jié)點之間通過這個端口號進行通信。

MGR中其他成員的地址由這個參數(shù)group_replication_group_seeds決定

MGR采取多主模式時,需要讓該參數(shù)group_replication_single_primary_mode=off(默認(rèn)是單主模式)。

于此同時需要將該參數(shù)group_replication_enforce_update_everywhere_checks=true。目的是為了做多主模式限制檢測。

注:加載到參數(shù)文件里面,需要在每個參數(shù)的前面加loose。

這里再強調(diào)一個參數(shù)group_replication_auto_increment_increment。該參數(shù)代表自增屬性,默認(rèn)值為7。我們要保證每個成員的該值相同,并且建議該參數(shù)的設(shè)置盡量比組內(nèi)成員的個數(shù)大一些,方便后期集群的擴展。

實戰(zhàn)第6步:

在192.168.56.101上啟動首個節(jié)點的MGR集群服務(wù)。命令如下:

 

  1. CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='123456' FOR CHANNEL 'group_replication_recovery' 

(MGR需要該異步復(fù)制通道,實現(xiàn)新節(jié)點加入集群自動從其他節(jié)點復(fù)制數(shù)據(jù)的目的,不需要手工指定從哪個節(jié)點復(fù)制,master_host和master_port信息。都是自動完成)

 

  1. SET GLOBAL group_replication_bootstrap_group = ON

(執(zhí)行初始化操作,只有首個節(jié)點需要這一步操作)

 

  1. START GROUP_REPLICATION;  

啟動成功之后,查看節(jié)點狀態(tài)信息。命令如下

 

  1. SELECT * FROM performance_schema.replication_group_members; 

關(guān)閉初始化操作 命令如下:

 

  1. SET GLOBAL group_replication_bootstrap_group = off

注:replication_group_members表中MEMBER_STATE字段狀態(tài)為ONLINE,再執(zhí)行關(guān)閉初始化命令。

老司機帶你在MySQL領(lǐng)域“大吉大利,晚上吃雞”

實戰(zhàn)第7步:

在192.168.56.102上面啟動第二個節(jié)點的mgr集群服務(wù)。命令如下

 

  1. CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='123456' FOR CHANNEL 'group_replication_recovery'
  2.  
  3. set global group_replication_allow_local_disjoint_gtids_join=ON;   
  4.  
  5. START GROUP_REPLICATION;  

 

啟動成功之后,查看節(jié)點狀態(tài)信息。命令如下

 

  1. SELECT * FROM performance_schema.replication_group_members; 

老司機帶你在MySQL領(lǐng)域“大吉大利,晚上吃雞”

實戰(zhàn)第8步:

在192.168.56.103上面啟動第三個節(jié)點的mgr集群服務(wù)。命令如下

 

  1. CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='123456' FOR CHANNEL 'group_replication_recovery' 
  2. set global group_replication_allow_local_disjoint_gtids_join=ON;    
  3. START GROUP_REPLICATION;  

 

啟動成功之后,查看節(jié)點狀態(tài)信息。命令如下:

 

  1. SELECT * FROM performance_schema.replication_group_members; 

可見啟動成功之后,三個成員的狀態(tài)都是ONLINE,證明已經(jīng)開始正常工作了。真正可以實現(xiàn)多節(jié)點的讀寫操作了。

以上就是對于MGR多主模式的原理介紹及其搭建過程。我們要有一種學(xué)習(xí)新知識的能力,多實操,多演練,從中得到其真諦,感受MySQL給我們帶來的簡單快樂!今后還會多發(fā)布更多技術(shù)的文章,大家多溝通交流! 

 

責(zé)任編輯:龐桂玉 來源: 51CTO博客
相關(guān)推薦

2017-12-21 15:37:29

華為云

2018-03-07 10:50:46

MySQL分布式存儲

2016-11-28 16:09:37

2020-03-09 10:21:12

Java集合類 Guava

2023-04-17 08:00:00

2017-03-17 15:10:52

微信消息撤回功能

2018-07-12 09:59:39

microServicmockautoTest

2018-05-15 16:57:23

程序員

2018-10-09 09:42:27

MySQL優(yōu)化單表

2018-09-28 15:06:41

MySQL優(yōu)化指南數(shù)據(jù)庫

2022-09-01 07:24:30

鴻蒙OSHarmonyOS微內(nèi)核

2020-04-21 15:54:07

戴爾

2018-07-26 16:32:31

數(shù)據(jù)吃雞游戲

2017-11-10 17:30:28

雙11

2020-03-30 15:12:27

Python開發(fā)錯誤

2022-12-14 15:16:51

2017-07-17 17:13:58

老司機

2019-09-19 08:17:02

數(shù)據(jù)分析AB

2020-11-09 14:15:23

代碼菜鳥老司機

2017-05-24 10:58:28

linux系統(tǒng)技巧
點贊
收藏

51CTO技術(shù)棧公眾號