电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MySQL 8.0.15配置MGR單主多從的方法

瀏覽:48日期:2023-10-09 13:58:46

一、簡介

MySQL Group Replication(簡稱MGR)字面意思是mysql組復制的意思,但其實他是一個高可用的集群架構,暫時只支持mysql5.7和mysql8.0版本.

是MySQL官方于2016年12月推出的一個全新的高可用與高擴展的解決方案,提供了高可用、高擴展、高可靠的MySQL集群服務.

也是mysql官方基于組復制概念并充分參考MariaDB Galera Cluster和Percona XtraDB Cluster結合而來的新的高可用集群架構.

MySQL Group Replication是建立在基于Paxos的XCom之上的,正因為有了XCom基礎設施,保證數據庫狀態機在節點間的事務一致性,才能在理論和實踐中保證數據庫系統在不同節點間的事務一致性。

由一般主從復制概念擴展,多個節點共同組成一個數據庫集群,事務的提交必須經過半數以上節點同意方可提交,在集群中每個節點上都維護一個數據庫狀態機,保證節點間事務的一致性。

優點:

高一致性,基于原生復制及paxos協議的組復制技術.

高容錯性,有自動檢測機制,當出現宕機后,會自動剔除問題節點,其他節點可以正常使用(類似zk集群),當不同節點產生資源爭用沖突時,會按照先到先得處理,并且內置了自動化腦裂防護機制.

高擴展性,可隨時在線新增和移除節點,會自動同步所有節點上狀態,直到新節點和其他節點保持一致,自動維護新的組信息.

高靈活性,直接插件形式安裝(5.7.17后自帶.so插件),有單主模式和多主模式,單主模式下,只有主庫可以讀寫,其他從庫會加上super_read_only狀態,只能讀取不可寫入,出現故障會自動選主.

缺點:

還是太新,不太穩定,暫時性能還略差于PXC,對網絡穩定性要求很高,至少是同機房做.

二、環境介紹

MySQL版本:8.0.15

數據庫端口:3306

集群復制端口:33006

MGR插件:group_replication.so

10.115.88.18:單主

10.115.88.19:從

10.115.88.20:從

三、安裝MySQL 8.0.15

3.1.1 下載地址:

https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.15-linux-glibc2.12-x86_64.tar

3.1.2: 安裝數據庫

解壓

tar -xf mysql-8.0.15-linux-glibc2.12-x86_64.tar -C /home/work

進入解壓目錄

cd /home/worktar xf mysql-8.0.15-linux-glibc2.12-x86_64.tar.gzmv mysql-8.0.15-linux-glibc2.12-x86_64 mysqlrm -rf *.xz

授予權限并創建數據目錄

cd /home/worktar xf mysql-8.0.15-linux-glibc2.12-x86_64.tar.gzmv mysql-8.0.15-linux-glibc2.12-x86_64 mysqlrm -rf *.xz chown -R work:work mysql mkdir data chown work:work data cd /home/work/mysql cd /home/work mkdir /home/work/relaylog chown -R work:work relaylog cd /home/work/mysql mkdir run chown -R work:work run

添加my.cnf文件

[client]default-character-set=utf8socket=/home/work/mysql/run/mysql.sock[mysqld]user = work port = 3306basedir=/home/work/mysqldatadir=/home/work/datasocket=/home/work/mysql/run/mysql.sockpid-file=/home/work/mysql/run/mysqld.pid# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0lower_case_table_names = 1server-id = 183306 log-bin = mysql-binlog-bin-index = binlogs.indexbinlog_format = rowbinlog_rows_query_log_events = onbinlog_checksum = noneslave-parallel-type = LOGICAL_CLOCKslave-parallel-workers = 4slave_preserve_commit_order = 1#GITDgtid_mode = onenforce_gtid_consistency = 1log-slave-updates = 1binlog_gtid_simple_recovery = 1relay_log = /home/work/relaylog/relay.logrelay-log-index = /home/work/relaylog/relay.indexmaster_info_repository = tablerelay_log_info_repository = tableplugin_load='group_replication=group_replication.so'#MGR#GR配置項 基中loose前綴表示若group Replication plugin未加載 mysql server仍明治維新啟動transaction_write_set_extraction = XXHASH64 #對每個事務獲取write set,并且用XXHASH64算法獲取hash值loose-group_replication_group_name = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa' #組名,此處可拿select.uuid()生成loose-group_replication_start_on_boot = off #在mysqld啟動時不自動啟動組復制loose-group_replication_local_address = '10.115.88.18:33006' #本節點的IP地址和端口,注意該端口是組內成員之間通信的端口,而不是MySQL對外提供服務的端口loose-group_replication_group_seeds = '10.115.88.18:33006,10.115.88.19:33006,10.115.88.20:33006' #種子節點的IP和端口號,新成員加入到集群的時候需要聯系種子節點,啟動集群的節點不使用該選項loose-group_replication_bootstrap_group = off #關閉,如果打開會造成腦裂 #是否啟動集群,注意,該選項任何時候只能用于一個節點,通常情況下啟動集群的時候使用,啟動之后需要關閉該選項loose-group_replication_member_weight = 50 #權重選擇skip-host-cacheskip-name-resolveskip-external-lockingcharacter-set-server=utf8lower_case_table_names=1event_scheduler=onlog_bin_trust_function_creators=onmax_connections = 3000 external-locking = FALSE max_allowed_packet = 32M sort_buffer_size = 8M join_buffer_size = 2M thread_cache_size = 300 #query_cache_size = 64M #query_cache_limit = 4M read_rnd_buffer_size = 8Minnodb_buffer_pool_size = 8096Minnodb_log_file_size = 128Minnodb_log_files_in_group = 2innodb_log_buffer_size = 2Minnodb_flush_log_at_trx_commit = 1sync_binlog = 1[mysqld_safe]log-error=/home/work/data/err.log

初始化數據庫

bin/mysqld --initialize --basedir=/home/work/mysql --lower-case-table-names=1 --datadir=/home/work/data/ --user=work

拷貝啟動文件

cp support-files/mysql.server /etc/init.d/mysqld

添加環境變量

echo ’export PATH=/home/work/mysql/bin:$PATH’ >>/etc/profilesource /etc/profile

數據庫啟動

/etc/init.d/mysqld start

修改數據庫密碼

alter user’root’@’localhost’ IDENTIFIED BY ’dashuaige’; flush privileges;

四、配置MGR主

4.1.1 配置my.cnf文件

修改binlog如下:

server-id = 103306log-bin = mysql-binlog-bin-index = binlogs.indexbinlog_format = rowbinlog_rows_query_log_events = onbinlog_checksum = noneslave-parallel-type = LOGICAL_CLOCKslave-parallel-workers = 4slave_preserve_commit_order = 1

修改GTID如下:

gtid_mode = onenforce_gtid_consistency = 1log-slave-updates = 1binlog_gtid_simple_recovery = 1relay_log = /home/work/relaylog/relay.logrelay-log-index = /home/work/relaylog/relay.indexmaster_info_repository = tablerelay_log_info_repository = table

添加MGR插件

plugin_load='group_replication=group_replication.so'

修改MGR參數

#GR配置項 基中loose前綴表示若group Replication plugin未加載 mysql server仍明治維新啟動transaction_write_set_extraction = XXHASH64 #對每個事務獲取write set,并且用XXHASH64算法獲取hash值loose-group_replication_group_name = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa' #組名,此處可拿select.uuid()生成loose-group_replication_start_on_boot = off #在mysqld啟動時不自動啟動組復制loose-group_replication_local_address = '10.115.88.18:33006' #本節點的IP地址和端口,注意該端口是組內成員之間通信的端口,而不是MySQL對外提供服務的端口loose-group_replication_group_seeds = '10.115.88.18:33006,10.115.88.19:33006,10.115.88.20:33006' #種子節點的IP和端口號,新成員加入到集群的時候需要聯系種子節點,啟動集群的節點不使用該選項loose-group_replication_bootstrap_group = off #關閉,如果打開會造成腦裂 #是否啟動集群,注意,該選項任何時候只能用于一個節點,通常情況下啟動集群的時候使用,啟動之后需要關閉該選項loose-group_replication_member_weight = 50 #權重選擇

啟動數據庫

/etc/init.d/mysqld restart

4.1.2 配置每臺hosts主機解析

[root@bj1-10-115-88-18 mysql]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain610.115.88.18 bj1-10-115-88-1810.115.88.19 bj1-10-115-88-1910.115.88.20 bj1-10-115-88-20

4.1.3 配置mgr第一個主節點

以下步驟在10.115.88.18主機上的mysql中執行

第一步:創建用于復制的用戶

set sql_log_bin=0;create user repuser@’%’ identified by ’repuser123’;grant replication slave,replication client on *.* to repuser@’%’;create user repuser@’127.0.0.1’ identified by ’repuser123’;grant replication slave,replication client on *.* to repuser@’127.0.0.1’;create user repuser@’localhost’ identified by ’repuser123’;grant replication slave,replication client on *.* to repuser@’localhost’;set sql_log_bin=1;

第二步:配置復制所使用的用戶

change master to master_user=’repuser’,master_password=’repuser123’ for channel ’group_replication_recovery’;

第三步:安裝mysql group replication這個插件

備注:如果在my.cnf里寫寫入plugin_load='group_replication=group_replication.so' 這步就可以不用操作install plugin group_replication soname ’group_replication.so’;通過show plugins;查看是否安裝成功

第四步:建個群(官方點的說法就是初始化一個復制組

set global group_replication_bootstrap_group=on;start group_replication;set global group_replication_bootstrap_group=off;select * from performance_schema.replication_group_members;

MySQL 8.0.15配置MGR單主多從的方法

五、配置另外兩節點,從

以下步驟在所有從主機上的mysql中執行

第一步:創建用于復制的用戶

set sql_log_bin=0;create user repuser@’%’ identified by ’repuser123’;grant replication slave,replication client on *.* to repuser@’%’;create user repuser@’127.0.0.1’ identified by ’repuser123’;grant replication slave,replication client on *.* to repuser@’127.0.0.1’;create user repuser@’localhost’ identified by ’repuser123’;grant replication slave,replication client on *.* to repuser@’localhost’;set sql_log_bin=1;

第二步:配置復制所使用的用戶

change master to master_user=’repuser’,master_password=’repuser123’ for channel ’group_replication_recovery’;

第三步:安裝mysql group replication這個插件

備注:如果在my.cnf里寫寫入plugin_load='group_replication=group_replication.so' 這步就可以不用操作install plugin group_replication soname ’group_replication.so’;通過show plugins;查看是否安裝成功

第四步:加入前面創建好的復制組

start group_replication;select * from performance_schema.replication_group_members;

如下出現以下報錯

MySQL 8.0.15配置MGR單主多從的方法

這是binlog導致的錯誤,執行以下

reset master;start group_replication;select * from performance_schema.replication_group_members;

查看是MGR狀態:

MySQL 8.0.15配置MGR單主多從的方法

查看MGR主的讀寫狀態

MySQL 8.0.15配置MGR單主多從的方法

查看MGR兩臺從的讀寫狀態

MySQL 8.0.15配置MGR單主多從的方法

到此這篇關于MySQL 8.0.15配置MGR單主多從的方法的文章就介紹到這了,更多相關MySQL MGR單主多從內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 黄石东方妇产医院_黄石妇科医院哪家好_黄石无痛人流医院 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | 耐高温电缆厂家-远洋高温电缆| 气体检测仪-氢气检测仪-可燃气体传感器-恶臭电子鼻-深国安电子 | 干粉砂浆设备-干粉砂浆生产线-干混-石膏-保温砂浆设备生产线-腻子粉设备厂家-国恒机械 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 沈阳楼承板_彩钢板_压型钢板厂家-辽宁中盛绿建钢品股份有限公司 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | 磁力反应釜,高压釜,实验室反应釜,高温高压反应釜-威海自控反应釜有限公司 | 中红外QCL激光器-其他连续-半导体连续激光器-筱晓光子 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 大型低温冷却液循环泵-低温水槽冷阱「厂家品牌」京华仪器_京华仪器 | 广州小程序开发_APP开发公司_分销商城系统定制_小跑科技 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 超细|超微气流粉碎机|气流磨|气流分级机|粉体改性机|磨粉机|粉碎设备-山东埃尔派粉体科技 | 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | 光照全温振荡器(智能型)-恒隆仪器 | 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 环境模拟实验室_液体-气体控温机_气体控温箱_无锡双润冷却科技有限公司 | hc22_hc22价格_hc22哈氏合金—东锜特殊钢 | 北京发电车出租-发电机租赁公司-柴油发电机厂家 - 北京明旺盛安机电设备有限公司 | 安徽净化工程设计_无尘净化车间工程_合肥净化实验室_安徽创世环境科技有限公司 | 诺冠气动元件,诺冠电磁阀,海隆防爆阀,norgren气缸-山东锦隆自动化科技有限公司 | 脉冲布袋除尘器_除尘布袋-泊头市净化除尘设备生产厂家 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | 科威信洗净科技,碳氢清洗机,超声波清洗机,真空碳氢清洗机 | 专注氟塑料泵_衬氟泵_磁力泵_卧龙泵阀_化工泵专业品牌 - 梭川泵阀 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 波纹补偿器_不锈钢波纹补偿器_巩义市润达管道设备制造有限公司 | 没斑啦-专业的祛斑美白嫩肤知识网站-去斑经验分享 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 云南成考网_云南成人高考报名网| 智能型高压核相仪-自动开口闪点测试仪-QJ41A电雷管测试仪|上海妙定 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 深圳工程师职称评定条件及流程_深圳职称评审_职称评审-职称网 | 找果网 | 苹果手机找回方法,苹果iPhone手机丢了找回,认准找果网! | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 楼承板-钢筋楼承板-闭口楼承板-无锡优贝斯楼承板厂 | 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 | LOGO设计_品牌设计_VI设计 - 特创易|