精华内容
下载资源
问答
  • 主从复制用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般准实时的业务数据库。 步骤一:主库db的更新事件(update、insert、delete)被写到binlog 步骤二:从库发起连接,连接到主库 ...

    主从复制:

    主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。

    步骤一:主库db的更新事件(update、insert、delete)被写到binlog
    步骤二:从库发起连接,连接到主库
    步骤三:此时主库创建一个binlog dump thread线程,把binlog的内容发送到从库
    步骤四:从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log.
    步骤五:还会创建一个SQL线程,从relay log里面读取内容,将更新内容写入到slave的db.

    原理:

    1.数据库有个bin-log二进制文件,记录了所有sql语句。
    2.我们的目标就是把主数据库的bin-log文件的sql语句复制过来。
    3.让其在从数据的relay-log(中继日志)重做日志文件中再执行一次这些sql语句即可。

    面试

    主从复制延迟大比较慢的原因
    主服务器的配置高,从服务器的配置比较低,并发量导致主服务器读的慢,从服务器写的慢,网络延迟比较低,从服务器的读写速度慢

    从数据库的读的延迟问题了解吗?咋解决?

    解决方法:半同步复制-解决数据库丢失的问题
    并行复制–解决从库复制延迟的问题

    展开全文
  • MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题? 考点分析 高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少。所以针对...

    面试题

    你有没有做 MySQL 读写分离?如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?

    考点分析

    高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少。所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗?

    面试题剖析

    如何实现 MySQL 的读写分离?

    其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去。

    MySQL 主从复制原理的是啥?

    主库将变更写入 binlog 日志,然后从库连接到主库之后,从库有一个 IO 线程,将主库的 binlog 日志拷贝到自己本地,写入一个 relay 中继日志中。接着从库中有一个 SQL 线程会从中继日志读取 binlog,然后执行 binlog 日志中的内容,也就是在自己本地再次执行一遍 SQL,这样就可以保证自己跟主库的数据是一样的。

    面试题:如何实现 MySQL 的读写分离?MySQL 主从复制原理是啥?

     

    这里有一个非常重要的一点,就是从库同步主库数据的过程是串行化的,也就是说主库上并行的操作,在从库上会串行执行。所以这就是一个非常重要的点了,由于从库从主库拷贝日志以及串行执行 SQL 的特点,在高并发场景下,从库的数据一定会比主库慢一些,是有延时的。所以经常出现,刚写入主库的数据可能是读不到的,要过几十毫秒,甚至几百毫秒才能读取到。

    而且这里还有另外一个问题,就是如果主库突然宕机,然后恰好数据还没同步到从库,那么有些数据可能在从库上是没有的,有些数据可能就丢失了。

    所以 MySQL 实际上在这一块有两个机制,一个是半同步复制,用来解决主库数据丢失问题;一个是并行复制,用来解决主从同步延时问题。

    这个所谓半同步复制,也叫 semi-sync 复制,指的就是主库写入 binlog 日志之后,就会将强制此时立即将数据同步到从库,从库将日志写入自己本地的 relay log 之后,接着会返回一个 ack 给主库,主库接收到至少一个从库的 ack 之后才会认为写操作完成了。

    所谓并行复制,指的是从库开启多个线程,并行读取 relay log 中不同库的日志,然后并行重放不同库的日志,这是库级别的并行。

    MySQL 主从同步延时问题(精华)

    以前线上确实处理过因为主从同步延时问题而导致的线上的 bug,属于小型的生产事故。

    是这个么场景。有个同学是这样写代码逻辑的。先插入一条数据,再把它查出来,然后更新这条数据。在生产环境高峰期,写并发达到了 2000/s,这个时候,主从复制延时大概是在小几十毫秒。线上会发现,每天总有那么一些数据,我们期望更新一些重要的数据状态,但在高峰期时候却没更新。用户跟客服反馈,而客服就会反馈给我们。

    我们通过 MySQL 命令: show status

    查看 Seconds_Behind_Master,可以看到从库复制主库的数据落后了几 ms。

    一般来说,如果主从延迟较为严重,有以下解决方案:

    • 分库,将一个主库拆分为多个主库,每个主库的写并发就减少了几倍,此时主从延迟可以忽略不计。
    • 打开 MySQL 支持的并行复制,多个库并行复制。如果说某个库的写入并发就是特别高,单库写并发达到了 2000/s,并行复制还是没意义。
    • 重写代码,写代码的同学,要慎重,插入数据时立马查询可能查不到。
    • 如果确实是存在必须先插入,立马要求就查询到,然后立马就要反过来执行一些操作,对这个查询设置直连主库不推荐这种方法,你要是这么搞,读写分离的意义就丧失了。

    关注我!这里只有干货!

    最近整理了java架构文档和学习笔记文件以及架构视频资料和高清架构进阶学习导图免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习,也可以关注我一下以后会有更多干货分享。

    添加小助手VX:xuanwo008 领取资料备注好“CSDN”信息

    展开全文
  • 那个直接复制屏幕,转换成latex的工具是啥? Mathpix

    那个直接复制屏幕,转换成latex的工具是啥?

    Mathpix

    展开全文
  • MySQL 主从复制原理是啥?如何解决 MySQL 主从同步的延时问题? 如何实现 MySQL 的读写分离? 基于主从复制,一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去,数据读取走从...

    如何实现 MySQL 的读写分离?MySQL 主从复制原理是啥?如何解决 MySQL 主从同步的延时问题?

    如何实现 MySQL 的读写分离?

    基于主从复制,一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去,数据读取走从库。

    MySQL 主从复制原理是啥?如何解决 MySQL 主从同步的延时问题?

    mysql主从复制用途:实时灾备,用于故障切换。读写分离,提供查询服务。备份,避免影响业务

    mysql主从复制原理:主库将变更写入 binlog 日志,然后从库连接到主库之后,从库有一个 IO 线程,将主库的 binlog 日志拷贝到自己本地,写入一个 relay 中继日志中。接着从库中有一个 SQL 线程会从中继日志读取 binlog,然后执行 binlog 日志中的内容,也就是在自己本地再次执行一遍 SQL,这样就可以保证自己跟主库的数据是一样的。
    i/o线程,去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中;主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog;
    SQL线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致;

    mysql主从复制存在的问题:
    数据丢失:主库突然宕机,然后恰好数据还没同步到从库,那么有些数据可能在从库上是没有的,有些数据可能就丢失了
    延时问题:从库同步主库数据的过程是串行化的,主库上并行的操作,在从库上会串行执行。从库从主库拷贝日志以及串行执行 SQL 的特点,在高并发场景下,从库的数据一定会比主库慢一些,是有延时的。刚写入主库的数据可能是读不到的,要过几十毫秒,甚至几百毫秒才能读取到。

    解决方法:
    半同步复制—解决数据丢失的问题
    并行复制----解决从库复制延迟的问题

    mysql半同步复制:
    mysql5.5 semi-sync(半同步复制)集成到mysql,以插件的形式存在,需要单独安装
    主库写入 binlog 日志之后,就会立即将数据同步到从库,从库将日志写入自己本地的 relay log 之后,接着会返回一个 ack 给主库,主库接收到至少一个从库的 ack 之后才会认为写操作完成了。
    确保事务提交后binlog至少传输到一个从库,不保证从库应用完这个事务的binlog
    性能有一定的降低,响应时间会更长,网络异常或从库宕机,卡主主库,直到超时或从库恢复

    mysql并行复制:
    社区版5.6中新增的,从库开启多个线程,并行读取 relay log 中不同库的日志,然后并行重放不同库的日志,这是库级别的并行
    并行是指从库多线程apply binlog,库级别并行应用binlog,同一个库数据更改还是串行的(5.7版并行复制基于事务组)
    设置sql线程数为10:set global slave_parallel_workers=10;

    实战问题:
    业务场景:先插入一条数据,再把它查出来,然后更新这条数据。在生产环境高峰期,写并发达到了 2000/s,这个时候,主从复制延时大概是在小几十毫秒。线上会发现,每天总有那么一些数据,我们期望更新一些重要的数据状态,但在高峰期时候却没更新。用户跟客服反馈,而客服就会反馈给我们。
    通过 MySQL 命令:show slave status,查看 Seconds_Behind_Master ,可以看到从库复制主库的数据落后了几 ms。

    一般来说,如果主从延迟较为严重,有以下解决方案:
    分库,将一个主库拆分为多个主库,每个主库的写并发就减少了几倍,此时主从延迟可以忽略不计。
    打开 MySQL 支持的并行复制,多个库并行复制。如果说某个库的写入并发就是特别高,单库写并发达到了 2000/s,并行复制还是没意义。
    重写代码,写代码的同学,要慎重,插入数据时立马查询可能查不到。
    如果确实是存在必须先插入,立马要求就查询到,然后立马就要反过来执行一些操作,对这个查询设置直连主库。不推荐这种方法,你要是这么搞,读写分离的意义就丧失了。

    展开全文
  • MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题? 面试官心理分析 高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少。所以...
  • 下列程序的运行结果() public static void main(String[] args) { int[] a = { 1, 2, 3, 4, 5 };...所以a复制给b,由于a和b相同数组的别名,所以b修改了,a就修改了!!
  • MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题? 考点分析 高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少。所以针对这...
  • MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题? 考点分析 高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少。所以针对...
  • 高并发这个阶段,肯定需要做读写分离的,意思? 因为实际上大部分的互联网公司,一些网站,或者 app,其实都读多写少。 所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不...
  • 仔细回忆了一下,原因在XFTP里面,直接Ctrl+C、Ctrl+V,通过下载上传的方式进行的,那这个速度就取决网速了,我的网不好,所以比较慢,不过就算再好的网,比起直接用CP命令复制本机文件也比较慢的吧。...
  • MySQL 主从复制原理的是啥? 主库将变更写入 binlog 日志,然后从库连接到主库之后,从库有一个 IO 线程,将主库的 binlog 日志拷贝到自己本地,写入一个 relay 中继日志中。接着从库中有一个 SQL ...
  • <div><p>09:59:59 | 已复制文件数 0 | 进行中 21 | 排队中文件数 54 10:00:02 | 已复制文件数 0 | 进行中 21 | 排队中文件数 54 10:00:05 | 已复制文件数 0 | 进行中 21 | 排队中文件数 54 10:00:08 | 已复制文件数 ...
  • php小白 问一个问题 复制拷贝下面代码的文件为提示该动作不存在 网站用的smarty模板分离.. {seopage id=18} {include "header.inc.html"} {include "user/header.inc.html"} ...
  • MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题? 面试官心理分析 高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少。...
  • etcd是啥

    2020-10-29 20:34:59
    etcd一个golang编写的分布式、高可用的一致性键值存储系统,etcd可以用于存储关键数据和实现分布式调度,etcd基于Raft协议,通过复制日志文件的方式来保证数据的强一致性。在etcd之前,常用的基于Paxos协议的...
  • MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题? 面试官心理分析 高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少。所以...
  • 从视图复制数据到新表总是报错,同一个语句改成从表到表就没问题。菜鸟不懂,为啊? create table tt as select `pn` from `tmp` where `tmp`.`check_report`='ok' 报错 SQL 错误 [1292] [22001]: Data...
  • 请把type属性变一下,属性不能hidden属性 不知道为什么使用jq点click事件不行,这样可以的
  • MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题? 面试官心理分析 高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少。所以...
  • 布局XML文件 <code><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app=... ...
  • 原文地址::https://zhidao.baidu.com/question/326392051685341405.html 相关文章 1、台达PLC步进继电器S简介(DVP-ES2)----http://www.plcs.cn/b/1325.html
  • Dockerfile到底

    2021-06-07 11:28:55
    Dockerfile一个Docker镜像的描述文件,Dockerfile其内部包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。 #基于centos镜像 ...#复制网站首页文件至镜像中w
  • ISCC2021-这是啥

    2021-05-19 17:05:44
    jsfuck而已,我们复制下来,注意这里不要复制多了,开头结尾都要删一点 保留:我草(一种植物)好长 [][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][([]+{})[!+[]+!![]+!![]+!![]+!!...
  • GIT

    千次阅读 多人点赞 2018-06-11 22:26:19
    git的最基本作用版本控制,比如你写一个文档,老板一直让你改,这时笨的人会在原文档上直接改,聪明一点的会复制一下原文档,在副本上修改,这时老板说你的第三版比较好,笨的人煞笔了。。,聪明一点的就直接拷贝...
  • js 作用域到底是啥

    2019-04-12 09:48:29
    这段时间学习的时候发现当时学习JS的作用域时感觉有点死记硬背的成分,最近的学习使用对JS的作用域有了更深的了解。...//声明一个变量a复制代码而语句分为普通语句和声明型语句而语句块就是用大括号把代码块...
  • 这篇文章我尽量说明高速缓存的是啥,和高速缓存至关重要的作用。(纯爱好,发现错误赶快联系我) 如果单单去观察一个HelloWord和程序是如何在计算机从执行的,就会发现系统花了大量的时间吧信息从一个地方加载到另一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,693
精华内容 677
关键字:

复制是啥