點擊上方“IT那活兒”,關注后了解更多內容,不管IT什么活兒,干就完了!!!
1. 環境說明
192.168.77.11 linux-node1.example.com
192.168.77.12 linux-node2.example.com
192.168.77.13 linux-node3.example.com
mysql 5.7.25
server_id=1001
server_id=1002
server_id=1003
2. MGR參數配置
注意:每個節點都要填寫這些參數項。
server_id=1001
#MYSQL實例在集群中的ID,必須唯一。
gtid_mode=ON
#開啟GTID,即全局事務ID,一個事務在集群中的唯一標識。
enforce_gtid_consistency=ON
#任何事務不允許違反GITD安全性與一致性,必須開啟。開啟之后create table ... select這種數據不會記錄binlog的語句就不能被執行。不會導致集群節點間的數據不一致。
master_info_repository=TABLE
#將master_info信息記錄到數據庫的系統表當中。
relay_log_info_repository=TABLE
#將relay_log_info信息記錄到數據庫的系統表當中。
log_slave_updates=ON
#將同步過來的數據變更,記錄到從庫的binlog當中。
log_bin=binlog
#開啟binlog用于數據同步。
binlog_format=ROW
#binlog的記錄格式。
binlog_checksum=NONE
#binlog的完整性校驗方式,NONE是為了兼容低版本實例。
transaction_write_set_extraction=XXHASH64
#server必須為每個事務收集寫集合,并使用XXHASH64哈希算法將其編碼為散列。
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
#告知插件加入或創建組名,必須是UUID,可用工具創建,組的名字可以隨便起,但不能用主機的GTID。
loose-group_replication_start_on_boot=off
#server啟動時不自啟組復制,為了避免每次啟動自動引導具有相同名稱的第二個組,所以設置為OFF。
loose-group_replication_local_address="192.168.77.11:13306"
#告訴插件當前主機的主機名或IP,自定義端口13306用于接收組中其他成員轉入連接,端口可改。
loose-group_replication_group_seeds="192.168.77.11:13306,192.168.77.12:13306,192.168.77.13:13306"
#啟動組server,種子server,加入組應該連接這些主機和端口;其他server要加入組得由組成員同意。
loose-group_replication_ip_whitelist=192.168.77.11,192.168.77.12,192.168.77.13
#添加允許加入成員的白名單,可以不寫。
loose-group_replication_bootstrap_group=off
#表示是否啟動MySQL分組,在一個分組中,只應當允許一個成員啟動MySQL分組。
#loose-group_replication_single_primary_mode=off
#多主模式須為off ,單主模式為on 。
#loose-group_replication_enforce_update_everywhere_checks=true
#多主模式須為true,單主模式為false。
注意:
每個節點server_id、loose-group_replication_local_address的值不能一樣。
loose-group_replication_group_seeds的值就是你計劃有幾個MGR節點,這個就填寫MGR所有節點的IP,每一個MGR節點的這個值是一樣的。
重啟所有Mysql節點使得參數配置生效。
show variables like %server_id%;
檢查每個節點的配置是否生效,以及server_id是否唯一。
3. 啟動MGR
所有節點執行:
install plugin group_replication soname group_replication.so;
上:如果你沒有讓之前配置的參數生效,這一步會報錯,ERROR 1123。
192.168.77.11執行:
SET SQL_LOG_BIN=0;
#創建授權用戶不寫入bin_log。
CREATE USER sync@192.168.% identified by sync;
GRANT REPLICATION SLAVE ON *.* TO sync@192.168.%;
flush privileges;
SET SQL_LOG_BIN=1;
#創建數據同步賬戶。
SET GLOBAL group_replication_bootstrap_group=ON;
CHANGE MASTER TO MASTER_USER=sync,MASTER_PASSWORD=sync FOR CHANNEL group_replication_recovery;
#第1臺服務器啟動組復制,復制組只須啟動一次,第1臺服務器和其他服務器在此次之后都無需再做以下操作。
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;
#啟動第個MGR組,組中只有一個master成員。
SELECT * FROM performance_schema.replication_group_members;
#判斷第一個MGR成員是否成功,member_state狀態必須是ONLINE。
192.168.77.12,192.168.77.13執行:
SET SQL_LOG_BIN=0;
#創建授權用戶不寫入bin_log。
CREATE USER sync@192.168.% identified by sync;
GRANT REPLICATION SLAVE ON *.* TO sync@192.168.%;
flush privileges;
SET SQL_LOG_BIN=1;
#創建數據同步賬戶。
CHANGE MASTER TO MASTER_USER=sync,MASTER_PASSWORD=sync FOR CHANNEL
group_replication_recovery;
START GROUP_REPLICATION;
驗證是否搭建成功:
SELECT * FROM performance_schema.replication_group_members;
#查看集群狀態,三個都要ONLINE。
SELECT
MEMBER_ID,
MEMBER_HOST,
MEMBER_PORT,
MEMBER_STATE,
IF(global_status.VARIABLE_NAME IS NOT NULL,
PRIMARY,
SECONDARY) AS MEMBER_ROLE
FROM
performance_schema.replication_group_members
LEFT JOIN
performance_schema.global_status ON global_status.VARIABLE_NAME = group_replication_primary_member
AND global_status.VARIABLE_VALUE = replication_group_members.MEMBER_ID;
上:查看MGR集群主節點是誰。
所有節點執行:
stop group_replication;
set global group_replication_single_primary_mode=OFF; set global group_replication_enforce_update_everywhere_checks=ON;
192.168.77.11執行:
SET GLOBAL group_replication_bootstrap_group=ON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_group=OFF;
192.168.77.12,192.168.77.13執行:
START GROUP_REPLICATION;
驗證是否搭建成功:
SELECT
MEMBER_ID,
MEMBER_HOST,
MEMBER_PORT,
MEMBER_STATE,
IF(global_status.VARIABLE_NAME IS NOT NULL,
PRIMARY,
SECONDARY) AS MEMBER_ROLE
FROM
performance_schema.replication_group_members
LEFT JOIN
performance_schema.global_status ON global_status.VARIABLE_NAME = group_replication_primary_member
AND global_status.VARIABLE_VALUE = replication_group_members.MEMBER_ID;
上:可以看到三個節點都是ONLINE,并且是SECONDARY狀態。可以在任意一個節點進行插入數據測試,都可以同步給其他節點。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129567.html
摘要:第一次接觸集群,感謝官方的指導文檔和許多網友提供的教程,糊糊涂涂算是把集群部署起來了。應該為每個運行的機器添加一個,否則集群處于狀態。至此的集群搭建算是完成了,下一步會進行塊設備的搭建。參考分布式存儲部署手冊如何在中安裝存儲集群部署版 第一次接觸ceph集群,感謝官方的指導文檔和許多網友提供的教程,糊糊涂涂算是把集群部署起來了。由于Luminous12.2剛發布不久,部署起來跟舊版本還...
摘要:月日,助力在北京舉辦全球最盛大的年度聚會,國內外頂尖的工程師做了很精彩的分享和互動,現場多名愛好者參與了此次技術主題盛宴。后續會有更多現場照片持續更新 11月15日,SegmentFault 助力PyCon China 在北京舉辦全球 Pythoneer 最盛大的年度聚會,國內外頂尖的Python 工程師做了很精彩的分享和互動,現場300多名python愛好者參與了此次技術主題盛宴。 ...
閱讀 1347·2023-01-11 13:20
閱讀 1685·2023-01-11 13:20
閱讀 1133·2023-01-11 13:20
閱讀 1860·2023-01-11 13:20
閱讀 4101·2023-01-11 13:20
閱讀 2705·2023-01-11 13:20
閱讀 1386·2023-01-11 13:20
閱讀 3599·2023-01-11 13:20