點(diǎn)擊上方“IT那活兒”,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。。?/span>
1. 環(huán)境說明
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參數(shù)配置
注意:每個(gè)節(jié)點(diǎn)都要填寫這些參數(shù)項(xiàng)。
server_id=1001
#MYSQL實(shí)例在集群中的ID,必須唯一。
gtid_mode=ON
#開啟GTID,即全局事務(wù)ID,一個(gè)事務(wù)在集群中的唯一標(biāo)識(shí)。
enforce_gtid_consistency=ON
#任何事務(wù)不允許違反GITD安全性與一致性,必須開啟。開啟之后create table ... select這種數(shù)據(jù)不會(huì)記錄binlog的語句就不能被執(zhí)行。不會(huì)導(dǎo)致集群節(jié)點(diǎn)間的數(shù)據(jù)不一致。
master_info_repository=TABLE
#將master_info信息記錄到數(shù)據(jù)庫的系統(tǒng)表當(dāng)中。
relay_log_info_repository=TABLE
#將relay_log_info信息記錄到數(shù)據(jù)庫的系統(tǒng)表當(dāng)中。
log_slave_updates=ON
#將同步過來的數(shù)據(jù)變更,記錄到從庫的binlog當(dāng)中。
log_bin=binlog
#開啟binlog用于數(shù)據(jù)同步。
binlog_format=ROW
#binlog的記錄格式。
binlog_checksum=NONE
#binlog的完整性校驗(yàn)方式,NONE是為了兼容低版本實(shí)例。
transaction_write_set_extraction=XXHASH64
#server必須為每個(gè)事務(wù)收集寫集合,并使用XXHASH64哈希算法將其編碼為散列。
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
#告知插件加入或創(chuàng)建組名,必須是UUID,可用工具創(chuàng)建,組的名字可以隨便起,但不能用主機(jī)的GTID。
loose-group_replication_start_on_boot=off
#server啟動(dòng)時(shí)不自啟組復(fù)制,為了避免每次啟動(dòng)自動(dòng)引導(dǎo)具有相同名稱的第二個(gè)組,所以設(shè)置為OFF。
loose-group_replication_local_address="192.168.77.11:13306"
#告訴插件當(dāng)前主機(jī)的主機(jī)名或IP,自定義端口13306用于接收組中其他成員轉(zhuǎn)入連接,端口可改。
loose-group_replication_group_seeds="192.168.77.11:13306,192.168.77.12:13306,192.168.77.13:13306"
#啟動(dòng)組server,種子server,加入組應(yīng)該連接這些主機(jī)和端口;其他server要加入組得由組成員同意。
loose-group_replication_ip_whitelist=192.168.77.11,192.168.77.12,192.168.77.13
#添加允許加入成員的白名單,可以不寫。
loose-group_replication_bootstrap_group=off
#表示是否啟動(dòng)MySQL分組,在一個(gè)分組中,只應(yīng)當(dāng)允許一個(gè)成員啟動(dòng)MySQL分組。
#loose-group_replication_single_primary_mode=off
#多主模式須為off ,單主模式為on 。
#loose-group_replication_enforce_update_everywhere_checks=true
#多主模式須為true,單主模式為false。
注意:
每個(gè)節(jié)點(diǎn)server_id、loose-group_replication_local_address的值不能一樣。
loose-group_replication_group_seeds的值就是你計(jì)劃有幾個(gè)MGR節(jié)點(diǎn),這個(gè)就填寫MGR所有節(jié)點(diǎn)的IP,每一個(gè)MGR節(jié)點(diǎn)的這個(gè)值是一樣的。
重啟所有Mysql節(jié)點(diǎn)使得參數(shù)配置生效。
show variables like %server_id%;
檢查每個(gè)節(jié)點(diǎn)的配置是否生效,以及server_id是否唯一。
3. 啟動(dòng)MGR
所有節(jié)點(diǎn)執(zhí)行:
install plugin group_replication soname group_replication.so;
上:如果你沒有讓之前配置的參數(shù)生效,這一步會(huì)報(bào)錯(cuò),ERROR 1123。
192.168.77.11執(zhí)行:
SET SQL_LOG_BIN=0;
#創(chuàng)建授權(quán)用戶不寫入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;
#創(chuàng)建數(shù)據(jù)同步賬戶。
SET GLOBAL group_replication_bootstrap_group=ON;
CHANGE MASTER TO MASTER_USER=sync,MASTER_PASSWORD=sync FOR CHANNEL group_replication_recovery;
#第1臺(tái)服務(wù)器啟動(dòng)組復(fù)制,復(fù)制組只須啟動(dòng)一次,第1臺(tái)服務(wù)器和其他服務(wù)器在此次之后都無需再做以下操作。
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;
#啟動(dòng)第個(gè)MGR組,組中只有一個(gè)master成員。
SELECT * FROM performance_schema.replication_group_members;
#判斷第一個(gè)MGR成員是否成功,member_state狀態(tài)必須是ONLINE。
192.168.77.12,192.168.77.13執(zhí)行:
SET SQL_LOG_BIN=0;
#創(chuàng)建授權(quán)用戶不寫入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;
#創(chuàng)建數(shù)據(jù)同步賬戶。
CHANGE MASTER TO MASTER_USER=sync,MASTER_PASSWORD=sync FOR CHANNEL
group_replication_recovery;
START GROUP_REPLICATION;
驗(yàn)證是否搭建成功:
SELECT * FROM performance_schema.replication_group_members;
#查看集群狀態(tài),三個(gè)都要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集群主節(jié)點(diǎn)是誰。
所有節(jié)點(diǎn)執(zhí)行:
stop group_replication;
set global group_replication_single_primary_mode=OFF; set global group_replication_enforce_update_everywhere_checks=ON;
192.168.77.11執(zhí)行:
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執(zhí)行:
START GROUP_REPLICATION;
驗(yàn)證是否搭建成功:
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;
上:可以看到三個(gè)節(jié)點(diǎn)都是ONLINE,并且是SECONDARY狀態(tài)??梢栽谌我庖粋€(gè)節(jié)點(diǎn)進(jìn)行插入數(shù)據(jù)測(cè)試,都可以同步給其他節(jié)點(diǎn)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129567.html
摘要:第一次接觸集群,感謝官方的指導(dǎo)文檔和許多網(wǎng)友提供的教程,糊糊涂涂算是把集群部署起來了。應(yīng)該為每個(gè)運(yùn)行的機(jī)器添加一個(gè),否則集群處于狀態(tài)。至此的集群搭建算是完成了,下一步會(huì)進(jìn)行塊設(shè)備的搭建。參考分布式存儲(chǔ)部署手冊(cè)如何在中安裝存儲(chǔ)集群部署版 第一次接觸ceph集群,感謝官方的指導(dǎo)文檔和許多網(wǎng)友提供的教程,糊糊涂涂算是把集群部署起來了。由于Luminous12.2剛發(fā)布不久,部署起來跟舊版本還...
摘要:月日,助力在北京舉辦全球最盛大的年度聚會(huì),國(guó)內(nèi)外頂尖的工程師做了很精彩的分享和互動(dòng),現(xiàn)場(chǎng)多名愛好者參與了此次技術(shù)主題盛宴。后續(xù)會(huì)有更多現(xiàn)場(chǎng)照片持續(xù)更新 11月15日,SegmentFault 助力PyCon China 在北京舉辦全球 Pythoneer 最盛大的年度聚會(huì),國(guó)內(nèi)外頂尖的Python 工程師做了很精彩的分享和互動(dòng),現(xiàn)場(chǎng)300多名python愛好者參與了此次技術(shù)主題盛宴。 ...
閱讀 1357·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3672·2023-01-11 13:20