企业之Mysql的组复制

Mysql的组复制简介

1.组复制简介

  • 组复制分单主模式和多主模式,mysql 的复制技术仅解决了数据同步的问题,如果 master 宕机,意味着数据库管理员需要介入,应用系统可能需要修改数据库连接地址或者重启才能实现。组复制在数据库层面上做到了,只要集群中大多数主机可用,则服务可用。

a) 单主模型:从复制组众多个MYSQL节点中自动选举一个master节点,只有master节点可以写,其它节点自动设置为只读。当master节点故障时,会自动选举一个新的master节点,选举成功后,它将设置为可写,其它的slave将指向这个新的master。

b)多主模型:复制组中的任何一个节点都可以写,因此没有master和slave的概念,只要突然故障的节点的数量不太多这个多主模就能继续使用。

2.组复制原理

  • 组复制由多个mysql服务器组成,并且组中的每一个mysql服务成员可以独立的执行事务。但是所有的读写事务只有在冲突检测成功后才会提交,只读事务不需要冲突检测,可以立即提交。
  • 对于任何读写事务,提交操作并不是由始发服务单向决定的,而是由组来决定是否提交。
  • 在始发mysql服务上,当事务准备好要提交时,该主机会广播写入值即已改变的行和对应的写入集及已更新的行的唯一标识符。然后会为该事务建立一个全局的顺序。最终,所有的server成员以相同的顺序接收同一组事务。所有的server成员以相同的顺序应用相同的更改,以保证组内一致。

3.组复制的优点

  • 组复制中即使一些server发生故障,系统仍然可用,只是在性能和伸缩性上有所降低,但是仍然可用。
  • server故障是孤立的。它们由组成员服务来监控,组成员服务依赖于分布式的故障检测系统,其能够在任何server自愿或者由于意外停止而离开组时发出信号。

二.单主模式下的Mysql组复制的部署

注:组复制必须保证节点服务相同

1.实验环境

172.25.26.5(server5) master
172.25.26.6(server6) slave
172.25.26.7(server7) slave

2.部署过程

server5:

由于在此实验之前做了mysql的其它相关应用,所以首先需要进行对数据库重新清理
a.查看server1上的uuid后面组复制时需要用到

在这里插入图片描述

b.数据库的文件删除恢复到初始状态,注意要先关闭数据库然后再删文件,才会生效

在这里插入图片描述
server1上组复制的配置

a.编辑配置文件添加组复制:

server-id=5
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW


transaction_write_set_extraction=XXHASH64    ##指定server必须为每个事务收集写集合,并使用哈希算法将其编码为散列
loose-group_replication_group_name="8c06ad16-9e0b-11e9-a34a-5254000823c8"     ##对创建的组命名
loose-group_replication_start_on_boot=off       ##不自动启动组复制
loose-group_replication_local_address= "172.25.26.5:24901"   ##本地的端口24901实现成员连接
loose-group_replication_group_seeds= "172.25.26.5:24901,172.25.26.6:24901,172.25.26.7:24901"
loose-group_replication_bootstrap_group=off     ##是否自动引导组
loose-group_replication_ip_whitelist="127.0.0.1,172.25.26.0/24"
loose-group_replication_enforce_update_everywhere_checks=ON    ##打开检查及其更新
loose-group_replication_single_primary_mode=OFF    #设置组自动选择一个server来处理读写工作

在这里插入图片描述

b.开启数据库

在这里插入图片描述

c.查看密码并且登录,可以在登录后使用命令对其初始化及修改密码

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
d.启动组复制

mysql> SET SQL_LOG_BIN=0;  ##首先在进行用户建立之前关闭二进制日志,建立好之后再打开
mysql> CREATE USER rpl_user@'%' IDENTIFIED BY 'Zhulili+123'; ##创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';  #授予用户权限
mysql> FLUSH PRIVILEGES;  ##刷新数据
mysql> SET SQL_LOG_BIN=1; ##开启日志
mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='Zhulili+123'
    -> FOR CHANNEL 'group_replication_recovery';  ##设置如果要改变master时需要通过该通道group_replication_recovery给其master的用户名和密码
mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';  ##安装组复制插件
mysql> SET GLOBAL group_replication_bootstrap_group=ON;  ##只在master上进行的操作,即自动引导组,当打开组复制之后将其再关闭
mysql> START GROUP_REPLICATION;
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;
mysql> SHOW PLUGINS;  ##查看组复制插件

组复制添加完成后查看状态为online则组复制添加成功

在这里插入图片描述
e.创建库添加表,插入数据方便后续的测试

在这里插入图片描述
server6:

  • 同server1如果做了相应的mysql的应用则需要删除数据重新开启数据库进行初始化

在这里插入图片描述
在这里插入图片描述
a.开启数据库过滤密码并且登录数据库进行修改密码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
b.编辑配置文件添加组复制(同server1)

该文件只需更改 server-id=6
loose-group_replication_local_address= “172.25.26.6:24901”

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

c.启动组复制

mysql> SET SQL_LOG_BIN=0;
mysql> CREATE USER rpl_user@'%' IDENTIFIED BY 'Zhulili+123';
mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
mysql> FLUSH PRIVILEGES;
mysql> SET SQL_LOG_BIN=1;
mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='Westos+001'   FOR CHANNEL 'group_replication_recovery';
mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
mysql> SET GLOBAL group_replication_allow_local_disjoint_gtids_join=on;
mysql> START GROUP_REPLICATION;
mysql> SHOW PLUGINS;

在这里插入图片描述

d.查看数据是否同步

在这里插入图片描述

server7:

安装数据库

在这里插入图片描述
a.编辑配置为文件
vim /etc/my.cnf
更改:
server-id=7
loose-group_replication_local_address= “172.25.26.7:24901”

在这里插入图片描述
b.开启数据库
在这里插入图片描述

c.过滤密码并且登录修改密码

在这里插入图片描述

在这里插入图片描述
d.启动组复制

mysql> SET SQL_LOG_BIN=0;
    mysql> CREATE USER rpl_user@'%' IDENTIFIED BY 'Zhulili+123';
    mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
    mysql> FLUSH PRIVILEGES;
    mysql> SET SQL_LOG_BIN=1;
    mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='Westos+001'   FOR CHANNEL 'group_replication_recovery';
    mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
    mysql> SET GLOBAL group_replication_allow_local_disjoint_gtids_join=on;
    mysql> START GROUP_REPLICATION;
    mysql> SHOW PLUGINS;

查看状态:

在这里插入图片描述
e.查看数据是否同步

在这里插入图片描述
发现数据已经同步,则复制成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园建设方案旨在通过融合先进技术,如物联网、大数据、人工智能等,实现校园的智能化管理与服务。政策的推动和技术的成熟为智慧校园的发展提供了基础。该方案强调了数据的重要性,提出通过数据的整合、开放和共享,构建产学研资用联动的服务体系,以促进校园的精细化治理。 智慧校园的核心建设任务包括数据标准体系和应用标准体系的建设,以及信息化安全与等级保护的实施。方案提出了一站式服务大厅和移动校园的概念,通过整合校内外资源,实现资源共享平台和产教融合就业平台的建设。此外,校园大脑的构建是实现智慧校园的关键,它涉及到数据中心化、数据资产化和数据业务化,以数据驱动业务自动化和智能化。 技术应用方面,方案提出了物联网平台、5G网络、人工智能平台等新技术的融合应用,以打造多场景融合的智慧校园大脑。这包括智慧教室、智慧实验室、智慧图书馆、智慧党建等多领域的智能化应用,旨在提升教学、科研、管理和服务的效率和质量。 在实施层面,智慧校园建设需要统筹规划和分步实施,确保项目的可行性和有效性。方案提出了题梳理、场景梳理和数据梳理的方法,以及现有技术支持和项目分级的考虑,以指导智慧校园的建设。 最后,智慧校园建设的成功依赖于开放、协同和融合的织建设。通过战略咨询、分步实施、生态建设和短板补充,可以构建符合学校特色的生态链,实现智慧校园的长远发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值