久久精品综合-欧美精品久久久久久-www一区二区-韩国三级中文字幕hd久久精品-国产一区二区三区在线-日韩免费视频

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

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知識。




主站蜘蛛池模板: 日本视频免费观看 | 欧美专区一区二区三区 | 亚洲大尺度视频 | 青娱乐国产在线视频 | 日本韩国理论片大全在线 | 天天干天天射天天舔 | 青草久久网 | 午夜手机视频 | 日韩高清欧美 | 四虎成人精品免费影院 | 香蕉久久夜色精品国产小优 | 亚洲激情视频在线播放 | 青青在线免费观看 | 亚洲视频免费观看 | 五月天婷婷基地 | 欧洲美女高清一级毛片 | 日本午夜小视频 | 日韩视频第一页 | 中文字幕乱码一二三四区 | 日本最新在线 | 青春久草 | 日韩a级毛片 | 日本在线不卡免 | 一级黄色片在线播放 | 亚洲日本va中文字幕 | 日本不卡免费高清一级视频 | 综合色99 | 婷婷激情久久 | 日韩中文精品亚洲第三区 | 欧美亚洲综合另类型色妞 | 日本精品在线观看 | 在线亚洲精品国产成人二区 | 午夜手机视频 | 欧洲黄色大片 | 桃花久久 | 亚洲一区二区免费在线观看 | 午夜视频网| 四虎影在线永久免费观看 | 日韩欧美中文字幕一区 | 亚洲综合15p | 一二三四免费高清观看在线观看 |