首页 > 数据库 >mysql8.0 主从架构模式【0到1架构系列】

mysql8.0 主从架构模式【0到1架构系列】

时间:2024-08-16 15:27:01浏览次数:17  
标签:主库 架构 server SOURCE mysql8.0 id 日志 主从 gtid

前提条件

  1. 准备3,4,5台虚拟机
  2. 祼装mysql8.0

主从架构

常见两种模式“一主多从”和“级联复制”两种,基本都很简单,都是依赖binlog日志文件进行同步,binlog日志会记录DDL和部分DDL语句,进行同步时从库会重新执行这些语句从而实现主从同步。

步骤1:

配置主/从服务器的server_id,如果不清楚mysql服务器server_id,使用命令 SHOW VARIABLES LIKE 'server_id';可以查询,server_id的值没有严格规定,保证全局唯一性即可,server_id值默认是1。

debian服务器编辑命令如下:nano /etc/mysql/my.conf ,加入下面节点,假设主库设置1,从库设置2,保存之后重启数据库systemctl restart mysql

[mysqld]
server-id=1 #主库配置加入
[mysqld]
server-id=2 #从库配置加入

步骤2(非必要):

主机上执行 show master status;显示最新的日志文件和当前位置。

File当前正在写入的二进制日志文件名。

Position当前二进制日志文件的偏移量,表示下一个要写入的位置。

Binlog_Do_DB主服务器上配置的需要记录到二进制日志中的数据库。

Binlog_Ignore_DB主服务器上配置的不需要记录到二进制日志中的数据库。

Executed_Gtid_Set在 GTID 模式下,该属性表示已经执行过的全局事务标识符的集合

步骤3:

从服务器连接主服务器进行主从同步,在从服务器上面执行如下代码:

CHANGE REPLICATION SOURCE to
 SOURCE_HOST='192.168.3.107',
 SOURCE_USER='root',
 SOURCE_PASSWORD='1234',
 SOURCE_LOG_FILE='binlog.000009',
 SOURCE_LOG_POS=0;

SOURCE_HOST:主库连接地址
SOURCE_USER:账号
SOURCE_PASSWORD:密码
SOURCE_LOG_FILE:主库当前二进制文件名
SOURCE_LOG_POS:当前二进制日志文件的偏移量

执行完成之后可以通过show REPLICA status;可以查看复制集群状态,通过如下命令可以启动,暂停,删除集群。

show REPLICA status; #查看
start REPLICA;       #开始
stop REPLICA;        #暂停
RESET REPLICA ALL;   #删除

通过设置SOURCE_HOST地址连接主库或从库,就可以轻松实现一主多从,或一主一从一从的链式架构。

GTID 模式(推荐)

主从复制中mysql提供一种GTID 模式,SHOW GLOBAL VARIABLES LIKE 'gtid_mode';查看Gtid模式的状态。gtid是一种新的日志格式,gtid每个事务都有一个唯一的GTID,保证了事务在整个复制拓扑中的唯一性,主要与传统日志格式区别就是以事务为单位而传统日志是基于日志位置。

RESET MASTER;重置主库的binlog日志,注意一旦重置日志将丢失所有日志数据,将从00001开始,编辑nano /etc/mysql/my.cnf,各个数据库的server_id按1-5排序下去,主库和从库都需要配置。

[mysqld]
server-id=1
gtid_mode=on
enforce_gtid_consistency=true

gtid_mode:开启gtid模式。

enforce_gtid_consistency:强制GTID一致性,这有助于提高数据的可靠性和一致性,防止数据丢失或损坏。

从库执行如下代码:

CHANGE REPLICATION SOURCE to 
 SOURCE_HOST='192.168.3.107',
 SOURCE_USER='root',
 SOURCE_PASSWORD='123',
 SOURCE_AUTO_POSITION=1;

你会发现SOURCE_LOG_FILE和SOURCE_LOG_POS将不再需要填写,因为gtid的好处之一就是会自动定位日志文件和位置,减少配置复杂性。其它的集群管理与传统的命令一致。

#主库常用命令
show master status  #查看主库状态
reset master;       #重置主库binlog日志

#从库常用命令
show replica status;    #查看从库状态
start replica;          #开始同步
stop replica;           #暂停同步
reset replica all;      #重置(删除)全部同步
select * from performance_schema.replication_applier_status_by_worker; #查看同步线程的信息(主要用于查看具体报错信息)

#其它
show variables like 'server_id';         #查看server_id
show global variables like 'gtid_mode';  #查看gtid状态

更多系列文章

构建高性能,可伸缩,高可用,安全,自动化,可溯源,整体式应用构架体系

 

标签:主库,架构,server,SOURCE,mysql8.0,id,日志,主从,gtid
From: https://www.cnblogs.com/netcore3/p/18355396

相关文章

  • 导购APP的技术架构与用户体验优化
    导购APP的技术架构与用户体验优化大家好,我是阿可,微赚淘客系统及省赚客APP创始人,是个冬天不穿秋裤,天冷也要风度的程序猿!随着移动互联网的快速发展,导购APP已成为连接用户与商品的桥梁。本文将探讨导购APP的技术架构设计以及如何通过技术手段优化用户体验。技术架构概览导......
  • Spring DI 简单演示三层架构——构造注入
    SpringIOC的常见注入方法有3种:Setter注入、构造注入和属性注入。想了解更多可点击链接:Spring注入、注解及相关概念补充        属性注入 不推荐。原因:使用私有的成员属性变量,依靠反射实现,破坏封装,只能依靠IOC容器实现注入,不严谨。所以我只演示Setter注入和构造......
  • Spring DI 简单演示三层架构——Setter 注入
    SpringIOC的常见注入方法有3种:Setter注入、构造注入和属性注入。想了解更多可点击链接:Spring注入、注解以及相关内容补充        属性注入 不推荐。原因:使用私有的成员属性变量,依靠反射实现,破坏封装,只能依靠IOC容器实现注入,不严谨。所以我只演示Setter注入和构......
  • 颠覆传统 北大新型MoM架构挑战Transformer模型,显著提升计算效率
    挑战传统的Transformer模型设计在深度学习和自然语言处理领域,Transformer模型已经成为一种标准的架构,广泛应用于各种任务中。传统的Transformer模型依赖于一个固定的、按深度排序的层次结构,每一层的输出都作为下一层的输入。这种设计虽然简单有效,但也存在参数冗余和计算效率低......
  • 【网络架构系列】区域医疗中心安全防护思路:从基础防护体系到专项需求应对
    一、区域医疗中心的定位二、区域医疗中心网络安全防护现状解析2.1中心建设政策解读2.1.1安全管理制度需严格执行2.1.2明确安全责任归属2.1.3体系化建设方案需覆盖安全生命全周期2.2中心建设痛点分析2.2.1区域中心整体防护......
  • (路由卷1)-1课程介绍_网络架构
    企业架构campus园区网datacenter数据中心branch分支机构teleworker远程办公人员网络模型access接入层distribution分布层做策略core核心层高速数据转发企业符合网络模型enterprisecampus企业园区enterpriseedge企业边缘serviceprovideredge服务提供商边缘网络......
  • 云计算实训30——mysql主从复制同步、mysql5.7版本安装配置、python操作mysql数据库、
    一、mysql主从复制及同步1、mysql主从自动开机同步2、配置mysql5.7版本mysql-5.7.44-linux-glibc2.12-x86_64.tar启动服务、登录对数据库进行基本操作3、使用python操纵mysql数据库4、编辑python脚本自动化操纵mysql数据库二、mycat读写分离......
  • 最完整版Linux安装mysql8.0(保姆教程)
    目录前言删除已安装的mysql通过yum源安装mysql前言安装mysql可以通过yum源和压缩包两种方式安装,压缩包安装的mysql通常使用的是旧的SysVinit脚本,使用命令如:servicemysqlstart。如果想要交给服务器的任务管理器管理需要进行额外配置,配置中可能会出现一些问题,推荐使......
  • 植入式可编程微型电流刺激器解决方案之软件架构解析
    前记 微电流刺激仪,是指利用低强度特定波形电流刺激大脑、下丘脑、边缘网状结构,调节大脑兴奋性,治疗失眠、焦虑或缓解症状。随着近些年新的医疗方式和科学研究的不断深入。这类技术在生物学以及医疗健康领域变得愈加重要了。笔者团队有幸参与了国内一家科研项目,并把该设备做成实......
  • 520-基于ZU15EG 适配AWR2243的雷达验证底板 XCZU15EG架构高速信号处理板
    基于ZU15EG适配AWR2243的雷达验证底板一、板卡概述   本板卡系北京太速科技自主研发,基于MPSOC系列SOC XCZU15EG-FFVB1156架构,搭载两组64-bit DDR4,每组容量32Gb,最高可稳定运行在2400MT/s。另有1路10G SFP+光纤接口、1路40G QSFP光纤接口、1路USB3.0接口、1路千兆网络接口......