广告
返回顶部
首页 > 资讯 > 数据库 >mysql主从同步原理、配置以及延迟的示例分析
  • 683
分享到

mysql主从同步原理、配置以及延迟的示例分析

2024-04-02 19:04:59 683人浏览 薄情痞子
摘要

小编给大家分享一下Mysql主从同步原理、配置以及延迟的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!mysql的主从同步原理、主从同步配置、主从同步延迟,首先我们先来了解什么是主

小编给大家分享一下Mysql主从同步原理、配置以及延迟的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

mysql的主从同步原理、主从同步配置、主从同步延迟,首先我们先来了解什么是主从同步,主从同步,顾名思义也称为主从复制,用来建立一个和主数据库完全一样的数据库环境。主从同步使得数据可以从一个数据库服务器复制到其他服务器上,实现主数据库的数据和从数据库的数据保持一致。

  • 集群是共享存储的,是data-sharing .  主从复制中没有任何共享 . 每台机器都是独立且完整的系统,是nothing-sharing.

主从同步的原理

  • 从mysql5.6之后主从复制的实现方式主要有3种:

    1.    异步复制

    2.    全同步复制

    3.    半同步复制

  • 主从同步原理图
    mysql主从同步原理、配置以及延迟的示例分析

1.当主数据库的更新事件(update、insert、delete)被写到binary-log .

2.从库创建一个I/O线程,该线程连接到主库并请求主库发送binlog里面的更新记录到从库上 .主库创建一个binlog dump thread线程,把binlog的内容发送到从库 ,从库的I/O线程读取主库的输出线程发送的更新并拷贝这些更新到本地relay log文件中 .

3.从库创建一个SQL线程,这个线程读取从库I/O线程写到relay log的更新事件并执行 .

主从同步的实现(异步复制,数据库在不同服务器)

1.配置主数据库打开binary-log
vim /etc/my.cnf

在[mysqld]下添加

server-id=1(用来标识不同的数据库)log-bin=master-bin(打开bin-log并配置文件名为master-bin)log-bin-index=master-bin.index(区分不同的log-bin文件)

重启数据库:systemctl restart mariadb.service

2.配置从数据库打开relay-log
vim /etc/my.cnf

在[mysqld]下添加

server-id=2relay-log=slave-relay-bin(打开relay-log并配置文件名为slave-relay-bin)

relay-log-index=slave-relay-bin.index

重启数据库:systemctl restart mariadb.service

3.连接两个数据库

在主数据库中:创建用户repl ,每一个从服务器都需要用到主数据库一个账户名和密码来连接主服务器 .

CREATE USER 'repl'@'114.116.77.213' IDENTIFIED BY '12312';GRANT REPLICATioN SLAVE ON *.* TO 'repl'@'114.116.77.213' IDENTIFIED BY '12312';

在从数据库中:

change master to master_host='47.106.78.106',master_user='repl',master_passWord='12312',master_log_file='master-bin.000001',master_log_pos=0;

启动同步:start slave;

4.验证

在主数据库创建一个数据库,然后在从数据库查看

主从同步的作用

1. 做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失 .

2. 读写分离,使数据库能支撑更大的并发 .

主从同步的注意事项

  1. 主库可以读写数据,而从库只能读数据,因为当从库写了数据positon会变化,但是主库的position是不会变的,当主库写数据变化position的时候就可能会有冲突.

  2. 当主库的binatylog文件存储的数据很多,也就是position很大的时候,会再分裂一个新的binarylog文件,position置为0;

  3. 主从库的mysql版本可以不一样,但是从库的mysql版本要比主库的版本要高,如果不是的话,那么主库的语句到了从库可能就不能执行.
    因为mysql是向后兼容的,也就是说低版本的语句在高版本里面是支持的,但是高版本的有些语句在低版本是不支持的.

面试相关

(如果问到数据库主从问题,必问以下问题):

  1. 主从的好处是?

  2. 主从的原理是?

  3. 从数据库的读的延迟问题了解吗?如何解决?

  4. 做主从后主服务器挂了怎么办?

  5. 主从同步的延迟的原因

  6. 主从同步的延迟的原因

主从同步延迟问题

1. 主从同步的延迟的原因

我们知道, 一个服务器开放N个链接给客户端来连接的, 这样有会有大并发的更新操作, 但是从服务器的里面读取binlog 的线程仅有一个, 当某个SQL在从服务器上执行的时间稍长 或者由于某个SQL要进行表就会导致,主服务器的SQL大量积压,未被同步到从服务器里。这就导致了主从不一致, 也就是主从延迟。

2. 主从同步延迟的解决办法

实际上主从同步延迟根本没有什么一招制敌的办法, 因为所有的SQL必须都要在从服务器里面执行一遍,但是主服务器如果不断的有更新操作源源不断的写入, 那么一旦有延迟产生, 那么延迟加重的可能性就会原来越大。 当然我们可以做一些缓解的措施。

a. 我们知道因为主服务器要负责更新操作, 他对安全性的要求比从服务器高, 所有有些设置可以修改,比如sync_binlog=1,innodb_flush_log_at_trx_commit = 1 之类的设置,而slave则不需要这么高的数据安全,完全可以讲sync_binlog设置为0或者关闭binlog,innodb_flushlog, innodb_flush_log_at_trx_commit 也 可以设置为0来提高sql的执行效率 这个能很大程度上提高效率。另外就是使用比主库更好的硬件设备作为slave。

b. 就是把,一台从服务器当度作为备份使用, 而不提供查询, 那边他的负载下来了, 执行relay log 里面的SQL效率自然就高了。

c. 增加从服务器喽,这个目的还是分散读的压力, 从而降低服务器负载。

看完了这篇文章,相信你对“mysql主从同步原理、配置以及延迟的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: mysql主从同步原理、配置以及延迟的示例分析

本文链接: https://www.lsjlt.com/news/54848.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql主从同步原理、配置以及延迟的示例分析
    小编给大家分享一下mysql主从同步原理、配置以及延迟的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!mysql的主从同步原理、主从同步配置、主从同步延迟,首先我们先来了解什么是主...
    99+
    2022-10-18
  • MYSQL主从不同步延迟原理分析及解决方案
    1. MySQL数据库主从同步延迟原理。要说延时原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作,主库对所有DDL和DML产生binlog,binl...
    99+
    2022-11-15
    MYSQL 不同步 延迟
  • MySQL主从延迟现象及原理分析详解
    一、现象 凌晨对线上一张表添加索引,表数据量太大(1亿+数据,数据量50G以上),造成主从延迟几个小时,各个依赖从库的系统无法查询数据,最终影响业务。 现在就梳理下主从延迟的原理。 二、原理 根据 MySQ...
    99+
    2022-10-18
  • MySQL主从同步延迟的原因及解决办法
    由于历史原因,MySQL复制基于逻辑的二进制日志,而非重做日志。多次被问到何时MySQL能支持基于物理的复制,其实这就看MySQL各位大佬的想法。上次和赖老师脑暴,倏地说道:MySQL会不会来个基于Paxo...
    99+
    2022-10-18
  • MySQL主从配置的示例分析
    这篇文章主要介绍了MySQL主从配置的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.主节点授权同步用户 官方文档是分两步进行的...
    99+
    2022-10-18
  • Linux中mysql主从配置的示例分析
    这篇文章主要为大家展示了“Linux中mysql主从配置的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中mysql主从配置的示例分析”这篇文...
    99+
    2022-10-18
  • mysql主从同步原理及应用场景示例详解
    目录基础知识MySQL 主从同步的主要应用场景有:原理设置主从同步,还有以下几个前提:实验环境模拟实现主从同步首先在 docker 中拉取 mysql 5.7 版本的镜像:通过以下命...
    99+
    2022-11-13
    mysql主从同步 mysql主从同步应用场景
  • Mysql主从同步的实现原理与配置实战
    1、什么是mysql主从同步? 当master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库。 2、主从同步有什么好处? 水平扩展数据库的负载能力。 容错,高可用。Failover(失败切换)/High Availab...
    99+
    2020-03-11
    Mysql主从同步的实现原理与配置实战
  • 高性能Mysql主从架构的复制原理及配置示例
    这篇文章主要介绍了高性能Mysql主从架构的复制原理及配置示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1 复制概述Mysql内建的复制...
    99+
    2022-10-18
  • Redis中主从架构数据一致性同步原理的示例分析
    这篇文章将为大家详细讲解有关Redis中主从架构数据一致性同步原理的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。高可用有两个含义:一是数据尽量不丢失,二是服务尽...
    99+
    2022-10-18
  • MySQL复制以及调优原理的示例分析
    这篇文章主要介绍MySQL复制以及调优原理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一. 简介MySQL自带复制方案,带来好处有:数据备份。负载均衡。分布式数据。概念介...
    99+
    2022-10-18
  • Ubuntu中环JDK环境变量配置以及MySQL、Samba安装的示例分析
    这篇文章主要为大家展示了“Ubuntu中环JDK环境变量配置以及MySQL、Samba安装的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Ubuntu中...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作