首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

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

编程知识
2024年08月16日 14:29

前提条件

  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状态

更多系列文章

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

 

From:https://www.cnblogs.com/netcore3/p/18355396
本文地址: http://www.shuzixingkong.net/article/1160
0评论
提交 加载更多评论
其他文章 reduce() 多种用法
reduce()方法用于将数组简化为单一值,通过遍历数组并应用提供的函数。它可以用于求和、乘积、计算对象属性的总和、数组去重和转换数组结构等。初始值的设置会影响reduce的起始索引。不提供初始值时,从索引1开始执行;提供初始值则从索引0开始。 一、 定义和用法reduce() 方法将数组缩减为单个
2024 暑假记
说明 本篇文章用于记录暑假每天的作息、安排、收获和经历。 \(2024 - 06 - 24\) 会考啦,在郑州市创新实验中学考点 \(52\) 考场 \(17\) 号。 第一场生物,考完后去操场休息了会,见到挺多认识的同学,还见到了很久没联系的小学同学,差点没认出来。 第二场地理,挺简单的,基本都是
2024 暑假记 2024 暑假记 2024 暑假记
我是如何使用 vue2+element-ui 处理负责表单,避免单文件过大的问题
引言 在工作中我经常需要处理一些复杂、动态表单,但是随着需求不断迭代,我们也许会发现曾经两三百行的.vue文件现在不知不觉到了两千行,三千行,甚至更多... 这对于一个需要长期维护的项目,无疑是增加了很多难度。 因此,为了减小文件大小,优化表单组织的结构,我在日常的开发中实践出一种基于组件的表单拆分
AvaloniaChat:一个基于大语言模型用于翻译的简单应用
简介 一个使用大型语言模型进行翻译的简单应用。 A simple application using a large language model for translation. 使用指南 访问GitHub地址:https://github.com/Ming-jiayou/AvaloniaChat
AvaloniaChat:一个基于大语言模型用于翻译的简单应用 AvaloniaChat:一个基于大语言模型用于翻译的简单应用 AvaloniaChat:一个基于大语言模型用于翻译的简单应用
别再被坑了! JavaScript类型检测的最佳实践
别再被坑了! JavaScript类型检测的最佳实践 在 JavaScript 中,我们经常需要判断一个变量的类型。这个需求在编程中非常常见,因为不同类型的数据会影响到我们的代码逻辑。 JavaScript 提供了几种方法来检测数据类型,每种方法都有自己的优缺点。 Object.prototype.
别再被坑了! JavaScript类型检测的最佳实践
.NET8 Blazor 从入门到精通:(二)组件
目录Blazor 组件基础路由导航参数组件参数路由参数生命周期事件状态更改组件事件 Blazor 组件 基础 新建一个项目命名为 MyComponents ,项目模板的交互类型选 Auto ,其它保持默认选项: 客户端组件 (Auto/WebAssembly): 最终解决方案里面会有两个项目:服务器
.NET8 Blazor 从入门到精通:(二)组件 .NET8 Blazor 从入门到精通:(二)组件 .NET8 Blazor 从入门到精通:(二)组件
games101 作业4及作业5 详解光线追踪框架
games101 作业4及作业5 详解光线追踪框架 作业4 代码分析 作业四的代码整体比较简单 主要流程就是 通过鼠标事件 获取四个控制点的坐标 然后绘制贝塞尔曲线的内容就由我们来完成 理论分析 贝塞尔曲线的理论就是给定一组控制点 然后不断的在控制点之间进行插值 再在得到的新的插值点之间进行插值 具
games101 作业4及作业5 详解光线追踪框架 games101 作业4及作业5 详解光线追踪框架 games101 作业4及作业5 详解光线追踪框架
WPF 怎么把checkbox改成开关样式
先看一下效果吧: isChecked = false 的时候的效果 isChecked = true 的时候的效果 然后我们来实现一下这个效果吧 第一步:创建一个空的wpf项目; 第二步:在项目里面添加一个checkbox <Grid> <CheckBox HorizontalAl
WPF 怎么把checkbox改成开关样式 WPF 怎么把checkbox改成开关样式 WPF 怎么把checkbox改成开关样式