MySQL主从复制原理及搭建过程

MySQL 主从复制搭建过程 MySQL 主从复制搭建过程,数据一致性,防止数据丢失,InnoDB事务安全的保护 阅读详情
  • GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。

复制概述

  • 复制即把一台服务器上的数据通过某种手段同步到另外一台或多台从服务器上,使得从服务器在数据上与主服务器保持一致。
  • MySQL从3.X版本就开始支持复制功能,期间多次完善、改进、新增功能,比如并行复制的改进、GTID复制的推出,多源复制的完善等众多功能的实现,目前该技术已基本成熟。
  • MySQL的复制功能是基于数据库Server层实现的,所以无论InnoDB引擎、MyISAM引擎或其他引擎都可进行同步复制。

复制过程

  • MySQL的复制是通过binlog功能实现的,具体分为3个线程。
  • 主节点:dump 线程,负责采集 binlog 数据与同步库 IO 线程交互。
  • 从节点:IO 线程将获取到的数据转储成 relaylog 文件(relaylog内部存储的内容与binlog一致)
  • 从节点:slave 线程将 relaylog 的数据读取出来,然后写入到数据库中。

复制流程图

线程信息截图

  • 主节点线程信息
[root@GreatSQL][(none)]>show processlist;
+----+-----------------+-----------------+------+-------------+------+-----------------------------------------------------------------+------------------+
| Id | User            | Host            | db   | Command     | Time | State                                                           | Info             |
+----+-----------------+-----------------+------+-------------+------+-----------------------------------------------------------------+------------------+
|  8 | sync            | 127.0.0.1:35424 | NULL | Binlog Dump | 5092 | Source has sent all binlog to replica; waiting for more updates | NULL             |
+----+-----------------+-----------------+------+-------------+------+-----------------------------------------------------------------+------------------+
3 rows in set (0.00 sec)
  • 从节点线程信息
[root@GreatSQL][(none)]>show processlist;
+----+-----------------+-----------------+------+---------+-------+----------------------------------------------------------+------------------+
| Id | User            | Host            | db   | Command | Time  | State                                                    | Info             |
+----+-----------------+-----------------+------+---------+-------+----------------------------------------------------------+------------------+
| 16 | system user     | connecting host | NULL | Connect |  5279 | Waiting for source to send event                         | NULL             |
| 17 | system user     |                 | NULL | Query   |  5010 | Replica has read all relay log; waiting for more updates | NULL             |
+----+-----------------+-----------------+------+---------+-------+----------------------------------------------------------+------------------+
5 rows in set (0.00 sec)

主从复制搭建过程

1.部署2个实例

  • 部署过程忽略

2.主节点赋权

mysql> CREATE USER sync@'127.0.0.1' identified by 'GreatSQL';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'sync'@'127.0.0.1';
mysql> FLUSH PRIVILEGES;

创建测试数据

# 创建库表
[root@GreatSQL][(none)]>create database test;
[root@GreatSQL][(none)]>use test
Database changed
[root@GreatSQL][test]>create table t1 (id int auto_increment, name varchar(64), primary key(`id`));
Query OK, 0 rows affected (0.42 sec)

# 创建数据
[root@GreatSQL][test]>insert into t1 values(1,'小明'),(2,'小林'),(3,'小王');
Query OK, 3 rows affected (0.03 sec)
Records: 3  Duplicates: 0  Warnings: 0

导出数据

[root@GreatSQL]# mysqldump -uroot -p --single-transaction --master_data=2 --set-gtid-purged=OFF -S /tmp/mysql57_3310.sock test > ./3310.sql
Enter password:

记录binlog

[root@GreatSQL]# cat 3310.sql|grep log-bin
-- CHANGE MASTER TO MASTER_LOG_FILE='log-bin.000005', MASTER_LOG_POS=4111;

导入到从节点

mysql -uroot -p -S /tmp/mysql57_3306.sock test < ./3310.sql

建立同步

# 采用传统 position 方式建立同步
[root@GreatSQL][test]>change master to master_host="127.0.0.1",master_port=3310,MASTER_USER='sync',MASTER_PASSWORD='GreatSQL',MASTER_LOG_FILE='log-bin.000005', MASTER_LOG_POS=4111;
Query OK, 0 rows affected, 9 warnings (0.16 sec)

[root@GreatSQL][test]>start slave;
Query OK, 0 rows affected, 1 warning (0.01 sec)

查看同步是否正常

[root@GreatSQL][(none)]>show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 127.0.0.1
                  Master_User: sync
                  Master_Port: 3310
                Connect_Retry: 60
              Master_Log_File: log-bin.000006
          Read_Master_Log_Pos: 196
               Relay_Log_File: mgr3-relay-bin.000003
                Relay_Log_Pos: 367
        Relay_Master_Log_File: log-bin.000006
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 196
              Relay_Log_Space: 741
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 2013712
                  Master_UUID: 68420c27-77ff-11ec-825e-00155dcff90e
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set: 68420c27-77ff-11ec-825e-00155dcff90e:6-9,
9f18f115-4621-11ec-8e5b-00155dcff902:1-43
                Auto_Position: 0
         Replicate_Rewrite_DB:
                 Channel_Name:
           Master_TLS_Version:
       Master_public_key_path:
        Get_master_public_key: 0
            Network_Namespace:
1 row in set, 1 warning (0.08 sec)

ERROR:
No query specified

测试数据同步情况

# 主节点写入1条测试数据
[root@GreatSQL][(none)]>insert into test.t1 values(4,'小清');
Query OK, 1 row affected (0.15 sec)

# 从节点查验,正常同步了
[root@GreatSQL][(none)]>select * from test.t1;
+------+--------+
| id   | name   |
+------+--------+
|    1 | 小明   |
|    2 | 小林   |
|    3 | 小王   |
|    4 | 小清   |
+------+--------+
4 rows in set (0.15 sec)

  • 几个关键参数介绍
参数名含义介绍
Slave_IO_State从节点IO线程状态
Master_Host主节点地址
Master_User复制用户
Master_Port主节点端口
Connect_Retry异常中断后,每隔多长时间重连
Master_Log_File当前主节点正在写入的 binlog 文件
Read_Master_Log_Pos当前从节点正在读取的 pos 值
Relay_Log_File当前从节点SQL线程正在读取的中继日志文件
Relay_Log_Pos当前从节点SQL线程正在读取中继日志的 pos 值
Relay_Master_Log_File从节点SQL线程执行到了相对于主节点的binlog文件
Slave_IO_Running从节点IO线程是否正常
Slave_SQL_Running从节点SQL线程是否正常
Exec_Master_Log_Pos从节点SQL线程执行到了相对于主节点Pos值的位置
Seconds_Behind_Master从节点延迟情况,参考值
Master_Server_Id主节点 server-id,主从节点需不一致,否则会提示冲突造成异常
Master_UUID主节点UUID值,主从节点需不一致,否则会提示冲突造成异常
Master_Info_File记录连接主节点的配置信息,如账户密码等
Slave_SQL_Running_State当前从节点读取主节点binlog文件状态,是否已经完成读取
Master_Retry_Count异常断开后重试次数

binlog设置

binlog格式介绍

binlog文件有3种格式,分别为 statement、mixed、row 3 种格式存在部分差异。

statement

  • 记录的是每一条执行的SQL内容,相对会节省比较多的空间。

row

  • 记录的是每一行结果的变化和上下文信息,占用比较多的空间。

mixed

  • 以上2种的混合,MySQL会根据具体执行 SQL 语句来区分,具体选择哪一种方式进行记录。

binlog功能

  • 1.提供主从复制功能
  • 2.任意时间点恢复

如何查看二进制日志

  • 参数1:ON状态,代表开启binlog日志记录,OFF状态,代表关闭binlog日志记录
  • 参数2:binlog日志存放的具体路径
  • 参数3:binlog日志的索引文件,这个文件与从节点的IO线程相关,如果丢失,则同步库提示异常。
mysql> show global variables like '%log_bin%';
+---------------------------------+-----------------------------------------------+
| Variable_name                   | Value                                         |
+---------------------------------+-----------------------------------------------+
| log_bin                         | ON                                            |
| log_bin_basename                | /data/logs/mysql57/3310/log-bin/log-bin       |
| log_bin_index                   | /data/logs/mysql57/3310/log-bin/log-bin.index |                                         |
+---------------------------------+-----------------------------------------------+
5 rows in set (0.00 sec)

如何禁止变更写入日志呢

  • 通常有一些需求是不将当前session操作的变更写入日志,可以进行如下设置,此时你在这个该连接下的操作都不会记录到log-bin文件种,注意设置的时候不要加 global 参数,否则同步记录都会出问题。
# 临时关闭当前session的log-bin
mysql> set session sql_log_bin=0;
Query OK, 0 rows affected (0.00 sec)

# 开启当前session的log-bin
mysql> set session sql_log_bin=1;
Query OK, 0 rows affected (0.00 sec)

如何调整bin-log保留时间

# 查看当前bin-log保留的时长
mysql> show global variables like '%expire_logs_days%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 30    |
+------------------+-------+
1 row in set (0.00 sec)

# 动态调整时长,调整后记得配置文件也需要同步更新
mysql> set global expire_logs_days=10;
Query OK, 0 rows affected, 1 warning (0.00 sec)

如何清理某个时间段之前的bin-log文件

# 查看当前的binlog文件
mysql> show binary logs;
+----------------+-----------+-----------+
| Log_name       | File_size | Encrypted |
+----------------+-----------+-----------+
| log-bin.000001 |       784 | No        |
| log-bin.000002 |      1779 | No        |
| log-bin.000003 |       241 | No        |
| log-bin.000004 |       196 | No        |
| log-bin.000005 |      1337 | No        |
+----------------+-----------+-----------+
5 rows in set (0.02 sec)

# 使用 purge 进行切割,这样之前的binlog就会都被清理掉
mysql> purge binary logs to 'log-bin.000003';
Query OK, 0 rows affected (0.03 sec)

mysql> show binary logs;
+----------------+-----------+-----------+
| Log_name       | File_size | Encrypted |
+----------------+-----------+-----------+
| log-bin.000003 |       241 | No        |
| log-bin.000004 |       196 | No        |
| log-bin.000005 |      1337 | No        |
+----------------+-----------+-----------+
3 rows in set (0.00 sec)

总结

  • 篇幅所限暂时写这么多,下一篇会介绍基于GTID形式的复制,以及binlog不同格式的差异点,欢迎追更,另外受限于个人能力,内容难免错漏,若有错误欢迎评论区指出更正。

Enjoy GreatSQL 😃

文章推荐:

GreatSQL季报(2021.12.26)
https://mp.weixin.qq.com/s/FZ_zSBHflwloHtZ38YJxbA

技术分享|sysbench 压测工具用法浅析
https://mp.weixin.qq.com/s/m16LwXWy9bFt0i99HjbRsw

故障分析 | linux 磁盘io利用率高,分析的正确姿势
https://mp.weixin.qq.com/s/7cu_36jfsjZp1EkVexkojw

技术分享|闪回在MySQL中的实现和改进
https://mp.weixin.qq.com/s/6jepwEE0DnYUpjMYO17VtQ

万答#20,索引下推如何进行数据过滤
https://mp.weixin.qq.com/s/pt6mr3Ge1ya2aa6WlrpIvQ

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

Gitee:
https://gitee.com/GreatSQL/GreatSQL

GitHub:
https://github.com/GreatSQL/GreatSQL

Bilibili:
https://space.bilibili.com/1363850082/video

微信&QQ群:
可搜索添加GreatSQL社区助手微信好友,发送验证信息“加群”加入GreatSQL/MGR交流微信群

QQ群:533341697
微信小助手:wanlidbc

MySQL 8.0 高可用之如何解决从库数据被修改引起的主从同步错误 作者公众号,欢迎一起交流。 在MySQL主从复制过程中,由于各种原因,不可避免在复制过程中出现错误,那么在复制过程中出现错误该如何解决呢?本篇将演示基于普通复制模式和基于GTID复制模式由于从库数据被修改导致的主从不一致时,如何在从库跳过相应的错误。 1 常见错误 1)ERROR:1062 从库插入数据,发生唯一性冲突 2)ERROR:1032 从库找不到要删除的数据 3)ERROR:1452 无法在外键的表插入或者更新参考主键没有的数据 2 普通复制模式从库出现错误 2.1 模拟错误 . 阅读详情

相关推荐

LabVIEW专栏九、类的继承与多态实践

本文深入探讨了LabVIEW中面向对象编程的核心概念——类的继承与多态。通过构建仪器参数父类与设备基类,并以网口设备为例创建子类,详细演示了如何利用继承实现代码复用,并通过多态机制实现统一接口调用不同仪器类型,从而构建灵活、可扩展的自动化测试与仪器控制系统。

weixin_29235525的博客 251

MySQL的主从复制==>详细步骤

介绍MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制然后解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。==> master将改变记录到二进制日志(binary log)==> slave将master的binary log拷贝到它的中继日志(relay log)

weixin_58428691的博客 4969

目标检测: 一文读懂 YOLOX

论文:YOLOX: Exceeding YOLO Series in 2021 论文链接:https://arxiv.org/pdf/2107.08430.pdf 代码链接:https://github.com/Megvii-BaseDetection/YOLOX. 文章目录1 为什么提出YOLOX2 YOLOX 网络架构3 YOLOX 实施细节3.1 backbone3.2 neck3.3 Head3.3.1 Decoupled Head3.3.2 Anchor-free3.4 如何计算Loss3.5 如

weixin_46142822的博客 3万+

MySQL 主从复制

h. SQL线程读取relaylog.info或者slave_relay_log_info表,获取到上次回放到的位置点,继续往后回放,回放完成后,再次更新relaylog.info信息。f. IO线程收到binlog(缓存),立即更新master.info 或者slave_master_info表。relay-log.info文件转成了table mysql.slave_relay_log_info。relay-log.info文件转成了table mysql.slave_relay_log_info。

lpx1249115962的博客 1200

2 海康视觉平台VisionMaster 上手系列:大纲及准备

海康视觉平台VisionMaster 大纲,课前准备 快速入门 工业机器视觉 机器视觉

HuangGong2022的博客 1万+

SPD-Conv+YOLOv8:空间深度转换卷积赋能小目标检测,从原理到实战的科研级优化指南

从理解SPD-Conv“空间到深度+逐步卷积”的核心设计,到亲手将其嵌入YOLOv8并验证在小目标场景的表现,再到基于此探索属于自己的科研与工程方向——这个过程能让你深刻理解“小目标特征保留”在检测任务中的核心价值。现在就开始行动,相信你会在小目标检测的“细节捕捉”之路上,走出一条属于自己的技术路径。实验通常会证明:嵌入SPD-Conv后,YOLOv8在小目标AP上提升5-8个百分点,mAP50-95提升3-5个百分点,而推理速度仅下降5%以内,充分体现了其“保细节+提精度”的优势。

m0_64661770的博客 163

mysql 主从同步

1.概述      Mysql内建的复制功能是构建大型,高性能应用程序的基础。     将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。     复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循

centos的博客 1131

RK3588网卡出现丢包或者带宽不足的问题验证排查

注意除了有最大的TCP数据接收缓冲,还有/proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲可以调整,这里暂时没用到,针对具体需要可适当调整。比如把ethx接口中断从默认的cpu0迁移到其它cpu,例如将eth0中断234移到cpu7 (10是16进制, cpu0 =3588的cpu有8个核,4个A55(小核)+4个A76(大核),可以找到对应中断 将中断从默认cpu0核切到cpu7。tcp_rmem:单位是字节,接收缓存区大小,缓存从对端接收的数据,后续会被应用程序读取。

Android/Linux驱动开发传帮带学习,让驱动入门门槛更低! 2028

MySQL主从复制——概念、原理、搭建过程

另外slave中还有另外一个叫SQLthread的线程,这个SQLthread主要负责读取中继日志中的数据,然后把中继日志中所记录的数据变化,再反映到自身数据库的数据变化,从而保证主从数据库是一致的。刚才演示的主库和从库复制,它是从二进制日志的当前位置往后进行同步的,如果之前的数据也需要同步到从库中,这时就需要将主库的数据导入到一个sql文件中,然后在从库中执行此sql脚本,来保证主库和从库的初始数据是一致的。首先查看主库中的数据和从库中的数据,并在主库当中执行增删改的操作。

weixin_44860226的博客 1924

2020年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第3题)

2020年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第3题)

王老师青少年编程 990

uniapp:实现圆盘/色盘取色器组件,圆环颜色选择器用户可拖拽选择颜色值实时更新用户选择的颜色数据,拖动丝滑流畅不卡顿(uniapp小程序/手机h5网页/安卓苹果app/nvue都能使用,详细源码)

uniapp项目中使用颜色选择器,uniapp实现简单圆形色盘、取色器、拾色器组件,Uniapp自定义颜色选择器取色器,圆形的颜色选择器,uniapp颜色拾取器,拾色器 取色器 颜色选择器,uniapp vue3圆形的色盘取色,uni-app如何封装一个取色器组件,用uniapp写调色板,uniapp颜色选择器插件,实现圆环颜色选择器,Uni-app在App端使用颜色选择器,uniapp微信小程序圆盘颜色选择,uniapp H5网页实现圆形的取色器,使用canvas实现的简单圆形色盘,可自定义相关大小,un

✅ 精选推荐文章 4534

Mysql数据库的主从复制读写分离搭建过程与原理介绍

首先说明一下在搭建Mysql数据库的主从复制与读写分离的过程中十分容易出错,所以在搭建的过程中一定要谨慎注重每一步的细节。 传统数据库中存在的问题 1.传统数据库设计时,如果服务器宕机,将不能为用户提供服务导致整个系统崩溃. 2.如果数据库突然宕机.会导致数据丢失. 3.为了防止数据丢失,要进行实时备份 冷备份:通过数据库工具进行人为的导出sql.但是手动导出数据可能在中间节...

Major818的博客 6694

全网最强AI辅助课题申报教程!超详细流程拆解,助你快速提高课题申报成功率(附各部分高效提示词)

实验法要详细说明自变量、因变量、实验类型、实验过程、实验步骤、测量工具名称、被试取样方式、无关变量控制方法。这个部分就是让评审专家相信我们有能力把这个项目干成,写的时候要重点突出两块内容:第一是研究基础,包括你或团队在相关领域已有的研究成果,比如发表的论文、承担过的课题、获得过的奖励、相关研究经验等,要具体、有说服力;课题申报专门给我们留了一小节用来突出课题的创新之处,不管是研究角度、研究对象、研究方法,还是应用价值都可以提炼作为我们的创新点,最后的语气成果也要明确具体,且要和课题内容紧密相关。

智能AI让学术科研更容易 665

【MySQL主从复制原理及搭建全过程】

目录 准备工作 主从复制原理 开始搭建主从复制 "本文将使用mariaDB数据库实现主从复制,其步骤与MySQL数据库无差异。 当然你也可以选择使用MySQL-5.7,点击查看MySQL-5.7安装教程 MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维...

weixin_30505225的博客 127

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Mysql主从复制架构的原理与搭建过程

1、拓扑图 2、原理 从库生成两个线程,一个I/O线程,一个SQL线程; i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中; 主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog; SQL 线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致; 3、如何安装第二个mysql MySQL压缩版安装教程(适用于5.x和8.x) 1、同mysql5.7版安装教

学无止境! 502

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MySQL基本的主从复制搭建过程及原理

虚拟机和安装准备 首先准备三台虚拟机,搭建一主两从架构。我这里以CentOS7为例。 服务器名分别为mysql01, mysql02, mysql03。 其中,mysql01 作为Master节点,两外两个作为Slave节点,从主节点同步数据。 首先要在三台虚拟机上安装mysql,安装过程见:CentOS7安装Mysql8全过程 配置主节点 安装完成后, 进入mysql01, 编辑配置文件 my.cnf vi /etc/my.cnf 在配置文件中加入以下配置: #server-id唯一,必须要配置, 而

Torry__的博客 2092

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

MySQL——主从复制原理、搭建过程、相关问题处理

文章目录主从原理主从搭建一、安装数据库实例二、创建主从复制用户三、备份主库数据恢复到从库四、进行从库change master to主从异常主从故障IO_thread故障SQL_thread故障SQL_thread故障分析主从延时 主从原理 主从复制主要是针对MySQL的主备库进行数据复制、备份。能保证主库输入的数据复制到从库的一种操作。 主从复制特点、实现、具备条件: 1、需要主库开启binlo...

hdfeng的博客 479

MySql主从复制实践 原理分析 搭建过程 优化和监控

MySQL复制拓扑有很多的方式,例如主从实时同步可以缓解数据库压力,灾备恢复,读写分离;通过延迟复制可以替换传统的脚本化数据库备份策略;通过多源复制方式可以方便对多系统数据库做聚合分析等等...

发现问题,面对问题,分析问题,解决问题,总结问题 2849

揭秘MySQL主从复制:打造高可用性与数据冗余的强效引擎

(1) 主从复制基于binlog来实现的(2) 主库发生新的操作,都会记录binlog(3) 从库取得主库的binlog进行回放(4) 主从复制的过程是异步。

xyyy060908的博客 1612

MySQL主从复制实验记录

MySQL主从复制实验记录 1,MySQL主从复制原理 2,实验环境介绍 3,搭建步骤 4,测试结果 一,MySQL主从复制原理 在slave端会有两个线程负责同步,一个IO线程,负责将master中的bin log读取过来转换为 relay log;另一个是sql线程,根据relay log执行sql语句。 MySQL数据库复制操作大致可以分为三个

beijixing2015的专栏 488

Linux系统-------------mysql主从复制和读写分离

保证数据的完整性中继日志只在主从服务器架构的从服务器上存在。从服务器(slave)为了与主服务器(Master)保持一致,要从主服务器读取二进制日志的内容,并且把读取到的信息写入本地的日志文件中,这个从服务器本地的日志文件就叫中继日志。然后,从服务器读取中继日志,并根据中继日志的内容对从服务器的数据进行更新,完成主从服务器的数据同步。搭建好主从服务器之后,中继日志默认会保存在从服务器的数据目录下。读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE)

zzzxxx520369的博客 1223

7安装sql cent os server_mysql 5.7 主从复制搭建及原理

1. 主从复制搭建1.1环境准备OS: Ubuntu 18.04master:192.168.0.3slave: 192.168.0.61.2安装依赖包# Ubuntuapt-getinstall-ylibaio-dev# CentOSyum install -y libaio-devel1.3下载二进制安装包# https://downloads.mysql.co...

weixin_39664477的博客 84

小白都能懂的Mysql主从复制原理(原理+实操)

前一篇的Mysql面试还是非常给力的,非常的干货,有兴趣的可以看一下[MySQL 四万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列)],虽然不是我写的,但是内容确实是非...

weixin_44742132的博客 1001

【MySql】 搭建主从复制

主从复制是指将主库的数据变更同步到从库,从而保证主库和从库数据一致,可用于数据备份、失败迁移、读写分离、降低单库读写压力等场景。对于面向大企业的B端产品而言,主从复制技术尤为重要。

精益求精 2036

mysql 主从_一文详解MySQL主从复制

之前文章详细介绍了MySQL数据库的单机多实例搭建,可参考:《MySQL单机多实例搭建》。本篇文章将在上篇文章的基础上介绍MySQL主从复制过程,其中常见的复制架构有:异步复制,半同步复制及同步复制。常用的复制架构有异步复制及半同步复制!一、常见的复制架构1.1、主主复制结构图:2. 说明主主复制即复制的两个实例互为主从,两个库中都可以同时读和写;优点a、对于读写请求都较...

weixin_39674978的博客 210
上一篇: 零基础学习MySQL
下一篇: 3. 安装部署MGR集群 | 深入浅出MGR
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值