六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

MySQL5.7.17 Group Replication初始詳細說明

[摘要]1,關于 Group Replication基于組的復制(Group-based Replication)是一種被使用在容錯系統中的技術。Replication-group(復制組)是由能夠相互通信的多個服務器(節點)組成的。在通信層,Group replication實現了一系列的機制:比如原子...

1,關于 Group Replication

基于組的復制(Group-based Replication)是一種被使用在容錯系統中的技術。Replication-group(復制組)是由能夠相互通信的多個服務器(節點)組成的。

在通信層,Group replication實現了一系列的機制:比如原子消息(atomic message delivery)和全序化消息(totalordering of messages)。

這些原子化,抽象化的機制,為實現更先進的數據庫復制方案提供了強有力的支持。

MySQL Group Replication正是基于這些技術和概念,實現了一種多主全更新的復制協議。

簡而言之,一個Replication-group就是一組節點,每個節點都可以獨立執行事務,而讀寫事務則會在于group內的其他節點進行協調之后再commit。

因此,當一個事務準備提交時,會自動在group內進行原子性的廣播,告知其他節點變更了什么內容/執行了什么事務。

這種原子廣播的方式,使得這個事務在每一個節點上都保持著同樣順序。

這意味著每一個節點都以同樣的順序,接收到了同樣的事務日志,所以每一個節點以同樣的順序重演了這些事務日志,最終整個group保持了完全一致的狀態。

然而,不同的節點上執行的事務之間有可能存在資源爭用。這種現象容易出現在兩個不同的并發事務上。

假設在不同的節點上有兩個并發事務,更新了同一行數據,那么就會發生資源爭用。

面對這種情況,Group Replication判定先提交的事務為有效事務,會在整個group里面重演,后提交的事務會直接中斷,或者回滾,最后丟棄掉。

因此,這也是一個無共享的復制方案,每一個節點都保存了完整的數據副本。看如下圖片01.png,描述了具體的工作流程,能夠簡潔的和其他方案進行對比。這個復制方案,在某種程度上,和數據庫狀態機(DBSM)的Replication方法比較類似。

MySQL5.7.17 Group Replication初始詳解

2,安裝mysql5.7.17

官網下載MYSQL5.7.17

在三臺db服務器上面設置/etc/hosts映射,如下:

192.168.136.130 db1

192.168.136.133 db2

192.168.136.134 db3


安裝的數據庫服務器:

數據庫服務器地址

端口

數據目錄

Server-id

192.168.136.130(db1)

3317

/data/mysql/data

120136130

192.168.136.133(db2)

3317

/data/mysql/data

120136133

192.168.136.134(db3)

3317

/data/mysql/data

120136134


3
,搭建gtid復制:

在3臺my.cnf上面配置gtid:

[mysqld]
gtid_mode=ON
log-slave-updates=ON
enforce-gtid-consistency=ON


在3臺mysql實例上db1、db2、db3分配賬號:

mysql> GRANT  REPLICATION SLAVE ON *.* TO 'repl'@'192.168.%' IDENTIFIED BY  'rlpbright_1927@ys';
Query OK, 0 rows affected, 1 warning  (0.00 sec)
 
mysql>


在db2、db3上搭建gtid服務:

mysql> change  master to master_user='repl', 
master_password='rlpbright_1927@ys',  
master_host='db1',master_port=3317, master_auto_position=1;
Query OK, 0 rows affected, 2 warnings  (0.02 sec)
 
mysql>  start slave;
Query OK, 0 rows affected (0.04 sec)
 
mysql>
mysql> show  slave status\G
*************************** 1. row  ***************************
               Slave_IO_State: Waiting for  master to send event
                  Master_Host: db1
                  Master_User: repl
                  Master_Port: 3317
                Connect_Retry: 60
              Master_Log_File:  mysql-bin.000002
           Read_Master_Log_Pos: 445
               Relay_Log_File:  mysql-relay-bin.000002
                Relay_Log_Pos: 414
         Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
………………………………..


4
,開啟Group Replication

有了gtid之后,開啟group replication就方便多了。首先需要安裝group replication插件

mysql> INSTALL PLUGIN group_replication  SONAME 'group_replication.so';
Query OK, 0 rows affected (0.03 sec)
 
 
mysql> show  plugins;
+----------------------------+----------+--------------------+----------------------+---------+
  Name          Status     Type          Library            License  
+----------------------------+----------+--------------------+----------------------+---------+
  binlog                   ACTIVE     STORAGE ENGINE       NULL            GPL      
…………
   group_replication             ACTIVE     GROUP REPLICATION    group_replication.so   GPL      
+----------------------------+----------+--------------------+----------------------+---------+
45 rows in set  (0.00 sec)


配置參數,db1(master)上:

mysql> set @@global.transaction_write_set_extraction =  XXHASH64
mysql> set @@global.group_replication_start_on_boot = OFF
mysql> set @@global.group_replication_bootstrap_group = OFF
mysql> set @@global.group_replication_group_name = 0c6d3e5f-90e2-11e6-802e-842b2b5909d6
mysql> set @@global.group_replication_local_address = 'db1:6606'
mysql> set @@global.group_replication_group_seeds = 'db2:6607,db3:6608'


配置參數,db2(slave1)上:

mysql> set @@global.transaction_write_set_extraction =  XXHASH64
mysql> set @@global.group_replication_start_on_boot = OFF
mysql> set @@global.group_replication_bootstrap_group = OFF
mysql> set @@global.group_replication_group_name = 0c6d3e5f-90e2-11e6-802e-842b2b5909d6
mysql> set @@global.group_replication_local_address = 'db2:6607'
mysql> set @@global.group_replication_group_seeds = 'db111:6606,127.0.0.1:db3'


配置參數,db3(slave2)上:

mysql> set @@global.transaction_write_set_extraction =  XXHASH64
mysql> set @@global.group_replication_start_on_boot = OFF
mysql> set @@global.group_replication_bootstrap_group = OFF
mysql> set @@global.group_replication_group_name = 0c6d3e5f-90e2-11e6-802e-842b2b5909d6
mysql> set @@global.group_replication_local_address = 'db3:6608'
mysql> set @@global.group_replication_group_seeds = 'db1:6607,db2:6606'


BTY
:如果之前沒有配置transaction_write_set_extraction=XXHASH64,這里修改之后之前創建的數據庫是沒有辦法執行插入操作的。所有如果想在線完成Group Replication的改造需要保證之前已經設置了transaction_write_set_extraction=XXHASH64。

開始構建集群,在db1(master)上執行:

# 構建集群
CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='rlpbright_1927@ys'FORCHANNEL'group_replication_recovery';
#開啟group_replication
SETGLOBAL  group_replication_bootstrap_group=ON;
START  GROUP_REPLICATION;
SETGLOBAL  group_replication_bootstrap_group=OFF;


db2、db3上加入

stop slave;
START GROUP_REPLICATION;

在db1上查看集群信息:

mysql>  SELECT * FROM performance_schema.replication_group_members;


以上就是MySQL5.7.17 Group Replication初始詳解的詳細內容,更多請關注php中文網其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。




主站蜘蛛池模板: 欧美一级黄色录像片 | 日本韩国欧美在线观看 | 天天干天天草天天 | 一区二区三区在线观看视频 | 日韩一区二区在线免费观看 | 中文字幕在线播放第一页 | 四虎中文 | 人人揉人人添人人捏人人看 | 思思99re66在线精品免费观看 | 亚洲国产资源 | 日韩欧美亚洲乱码中文字幕 | 在线青青| 午夜在线视频观看版 | 日韩精品亚洲精品485页 | 亚洲欧美啪啪 | 日本高清视频在线www色下载 | 亚洲精品福利视频 | 日本人视频网站一 | 亚洲国产精品久久婷婷 | 视频一区二区精品的福利 | 四虎影视国产精品永久在线 | 中文国产成人精品久久一 | 色福利视频导航 | 亚洲福利视频一区二区 | 婷婷丁香六月 | 日本视频一区二区免费播放 | 欧洲美女a视频一级毛片 | 天天艹夜夜 | 天天操天天射天天舔 | 色吧综合网 | 色在线视频播放 | 青青视频免费在线 | 亚洲 欧美 国产 中文 | 四虎影视在永久在线观看 2019 | 青青草原伊人 | 日本黄色免费在线 | 色www免费视频 | 天天爽天天色 | 特黄视频免费看 | 亚洲特黄视频 | 欧美行性性性o00x |