主从设备的同步(基于binlog和gtid实现同步)

ops/2025/1/21 10:01:54/

一、原理

1、MySQL将数据变化记录到二进制日志中;
2、Slave将MySQL的二进制日志拷贝到Slave的中继日志中;
3、Slave将中继日志中的事件在做一次,将数据变化,反应到自身(Slave)的数据库
以便:
灾备
数据分布
负载平衡
读写分离
提高并发能力

二、工作过程

1、从库通过手工执行change master to 语句连接主库,提供了连接的用户一切条件(user 、password、port、ip),并且让从库知道,二进制日志的起点位置(file名 position 号); start slave
2、从库的IO线程和主库的dump线程建立连接。
3、从库根据change master to 语句提供的file名和position号,IO线程向主库发起binlog的请求。
4、主库dump线程根据从库的请求,将本地binlog以events的方式发给从库IO线程。
5、从库IO线程接收binlog events,并存放到本地relay-log中,传送过来的信息,会记录到master.info中
6、从库SQL线程应用relay-log,并且把应用过的记录到relay-log.info中,默认情况下,已经应用过的relay 会自动被清理purge

方法一:基于binlog日志实现主从同步

前提:2台设备的mysql版本最好相同

        1.主设备的配置

                (1.配置 /etc/my.cnf.d/mysql-server.cnf子配置文件并重启mysql服务。

[root@localhost ~]#vim /etc/my.cnf.d/mysql.server.cnf----先配
[root@localhost ~]#systemctl restart mysqld---后重启

                (2. 授权用户    

[root@localhost ~]# systemctl restart mysqld

        2. 从设备配置

                (1.配置 /etc/my.cnf.d/mysql-server.cnf子配置文件并重启mysql服务。

[root@localhost ~]#vim /etc/my.cnf.d/mysql.server.cnf----先配
[root@localhost ~]#systemctl restart mysqld---后重启

                 (2.关闭从设备---stop slave 并 配置参数--change master to

                        (3.开启从设备并检查slave状态

 

注:出现上述情况可能是因为

        1.配置子配置文件是没有重启

        2.防火墙和seliunx的原因

         正确的slave状态应为双‘yes’:

                (4.测试

在主设备山上进行相应操作,到从设备上观察。

方法二:基于gtid实现主从同步

在binlog方法的文件配置基础上开启gtid

开启gtid
gtid_mode=ON
enforce-gtid-consistency=ON 

        1.主设备配置    
                (1.配置 /etc/my.cnf.d/mysql-server.cnf子配置文件并重启mysql服务。
[root@localhost ~]#vim /etc/my.cnf.d/mysql.server.cnf----先配
[root@localhost ~]#systemctl restart mysqld---后重启

         查看gtid是否开启 

        2.从设备配置

                (1.配置 /etc/my.cnf.d/mysql-server.cnf子配置文件并重启mysql服务。

[root@localhost ~]#vim /etc/my.cnf.d/mysql.server.cnf----先配
[root@localhost ~]#systemctl restart mysqld---后重启

               

                (2.从设备参数配置 --change master to 

mysql> change master to >     MASTER_HOST = '192.168.63.11',>     MASTER_PORT = port,>     MASTER_USER = 'rep',>     MASTER_PASSWORD = '123456',>     MASTER_AUTO_POSITION = 1;

或者

mysql> CHANGE REPLICATION SOURCE TO>     SOURCE_HOST = '192.168.63.11',>     SOURCE_PORT = port,------可选项,若端口改变一定要加>     SOURCE_USER = 'rep',>     SOURCE_PASSWORD = '1213456',>     SOURCE_AUTO_POSITION = 1;
                (3.启动从设备并观察状态和测试
mysql> START SLAVE;


http://www.ppmy.cn/ops/151877.html

相关文章

Jetbrains 官方微信小程序插件已上线!

就在昨天,Jetbrains官方发布了一篇文章,宣布它们发布了一款专用于微信小程序开发的插件(插件名称:WeChat Mini Program),至此,大家可以使用Jetbrains家的IDE(例如IDEA、WebStorm&…

Arm 计划涨价高达 300%,并考虑自行研发芯片

Arm 计划涨价高达 300% 据财联社 1 月 14 日消息,芯片技术供应商 Arm Holdings(Arm)正在制定一项长期战略,计划将其芯片设计授权费用提高高达 300%,并考虑自主研发芯片,以与其最大的客户展开竞争。以下是详…

OpenCV的TIF红外可见光融合算法

一、简介 首先TIF是Two-Scale Image Fusion的缩写,论文《Two-Scale Image Fusion of Infrared and Visible Images Using Saliency Detection (TIF)》,作者在论文中提到TIF算法主要通过以下三个步骤实现融合: 图像分解,图像分解使…

基于Python招聘职位数据采集与数据可视化分析

摘要 随着互联网技术的发展,网络招聘成为招聘者与求职者的主要选择,许多大型招聘网站也随之出现,越来越多的毕业生和求职者造成了社会就业压力巨大的现状。因此设计并实现招聘职位数据采集与数据可视化分析系统有重要的研究价值和意义。该系统…

风吹字符起,诗意Linux:一场指令与自由的浪漫邂逅(上)

文章目录 前言一. 知识过渡文件的属性与类型路径 二. 基本指令ls:风起草长,窥见世界的全貌cd:穿梭路径间,漫步荒原的远方pwd:定位自我,荒原上的坐标mkdir:种下希望,创建属于自己的世…

使用HTML5 Canvas 实现呼吸粒子球动画效果的原理

在网页开发领域,动画效果能够极大地提升用户体验,让页面变得更加生动有趣。今天,我们深入剖析一个基于 HTML5 Canvas 的 3D 粒子动画 —— 呼吸粒子球。通过详细解读其代码实现,我们将全面了解如何运用 HTML5 的强大功能构建出如此…

Windows 下 Postgres 安装 TimescaleDB 插件

Windows 下 Postgres 安装 TimescaleDB 插件 一、准备工作 安装 PostgreSQL:首先确保你已经在 Windows 系统中成功安装了 PostgreSQL 数据库。可以从 PostgreSQL 官方网站下载适合你系统的安装包,并按照安装向导进行安装。安装过程中,记住设…

Bash 中 nohup 与 的区别及用法解析

在 Bash 中,nohup 和 & 都可以用来在后台运行命令,但它们的作用和用途各有不同。以下将详细介绍它们的特点、区别及适用场景。 1. &(后台运行) & 是 Bash 的一个特殊符号,用于将命令放到后台执行。它的主…