「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

内容较多,可先收藏,目录如下:

一、什么是主从复制

二、主从复制的作用(重点)

三、主从复制的原理(重中之重)

四、三步轻松构建主从

五、必问面试题干货分析(最最重要的点)


一、什么是主从复制(技术文):

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

二、主从复制的作用(好处,或者说为什么要做主从)重点!:

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

2、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。

3、读写分离,使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。

三、主从复制的原理(重中之重,面试必问):

1.数据库有个bin-log二进制文件,记录了所有sql语句。

2.我们的目标就是把主数据库的bin-log文件的sql语句复制过来。

3.让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。

4.下面的主从配置就是围绕这个原理配置

5.具体需要三个线程来操作:

binlog输出线程。每当有从库连接到主库的时候,主库都会创建一个线程然后发送binlog内容到从库。

在从库里,当复制开始的时候,从库就会创建两个线程进行处理:

从库I/O线程。当START SLAVE语句在从库开始执行之后,从库创建一个I/O线程,该线程连接到主库并请求主库发送binlog里面的更新记录到从库上。从库I/O线程读取主库的binlog输出线程发送的更新并拷贝这些更新到本地文件,其中包括relay log文件。

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

可以知道,对于每一个主从复制的连接,都有三个线程。拥有多个从库的主库为每一个连接到主库的从库创建一个binlog输出线程,每一个从库都有它自己的I/O线程和SQL线程。(技术文)

主从复制如图:

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

原理图

还不懂?没关系,这图也一样:

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

  • 步骤一:主库db的更新事件(update、insert、delete)被写到binlog

  • 步骤二:从库发起连接,连接到主库

  • 步骤三:此时主库创建一个binlog dump thread,把binlog的内容发送到从库

  • 步骤四:从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log

  • 步骤五:还会创建一个SQL线程,从relay log里面读取内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到slave的db(技术文)

再不懂?没办法了,留言为你解惑。

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

真长!中场休息会,一起左三圈右三圈吧。看不下去的可以先收藏关注哈。

需要知道的是,面试过程中原理不会让你讲那么久,一般的,只要把1234点讲出来,然后说简略说下三个线程,这就满分了!

四、三步轻松构建主从(技术文):

一、Master主服务器上的配置(103.251.237.42)

1.编辑my.cnf (命令查找文件位置:find / -name my.cnf)

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

在[mysqld]中注释掉 bind-address = 127.0.0.1 不然mysql无法远程

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

server-id = 1 中 1 是可以自己定义的,但是需要保持它的唯一性,是服务器的唯一标识

1.log_bin 启动MySQL二进制日志

2.binlog_do_db 指定记录二进制日志的数据库

3.binlog_ignore_db 指定不记录二进制日志的数据库。

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

注释掉 binlog_do_db 和 binlog_ignore_db ,则表示备份全部数据库

做完这些后,重启下数据库

2.登陆主服务器mysql 创建从服务器用到的账户和权限;

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

@之后IP可访问主服务器,这里值定从服务器IP

新建密码为masterbackup的masterbackup 用户,并赋予replication slave 权限

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

可以看到用户masterbackup 已经添加

3.查看主数据库的状态

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

记录 mysql-bin.000007 以及 276,编写以下命令待用;

change master to master_host='103.251.237.42',master_port=3306,master_user='masterbackup',master_password='masterbackup',master_log_file='mysql-bin.000007',master_log_pos=276;

二、Slave从服务器配置上的配置(103.251.237.45)

1.编辑my.cnf(命令查找文件位置:find / -name my.cnf)

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

在[mysqld]中

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

relay-log = slave-relay-bin

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

暂时不清楚这是做什么的。加入这两条。

重启mysql服务

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

登陆mysql,停止同步命令

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

执行用上面准备的命令; 登录Slave从服务器,连接Master主服务器:

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

重新启动数据同步;

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

查看Slave信息;如图两句都为yes,则状态正常

三、从主从服务器测试结果

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

在主服务器创建一个数据库

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

在从服务器上查看刚才创建的数据库

可以查到,主从服务器配置完成。(技术文)当然,还有主主复制,如果有感兴趣的朋友可以留言。

其实主从复制也存在一些问题:

1. 负载均衡,由于复制的时间差,不能保证同步读,而且写仍然单点,没法多点写,我对这个理解就是半吊子的读写均衡。

2. 容灾,基本都是有损容灾,因为数据不同步,谁用谁知道,半吊子的容灾。

可能只是提供一种成本较低的数据备份方案加不完美的容灾和负载均衡吧,这种方案注定是一种过渡方案,个人认为必须更新了。当然,在不是体量巨大的情况下,还是不失为一个优化的解决办法。

五、面试题干货分析(如果问到数据库主从问题,必问以下问题):

1、主从的好处是?

2、主从的原理是?

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

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

转载于:https://www.cnblogs.com/a8457013/p/7819018.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么WordPress网站应尽量避免使用过多插件

前几天,我们在给一个客户优化其企业网站时,发现其网站使用了太多的WordPress插件。WP插件可以扩展网站的功能;然而如果使用不当,也会给网站带来一些负面的影响。在这篇文章中,WPChina.org就给大家介绍一下,…

OracleApps Dropship 流程

做的一个Dropship流程的实录(包括流程期间遇到问题的解决)What are the advantages of Drop Shipment Orders?These are the benefits: No inventory is required Reduced order fulfillment processing costs Reduced flow times Elimination of losses on non-sellable …

word取消下一页_word文档页码设置及文中小箭头清除办法

在很长一段时间里,朋友圈流传的这样一段话:世人慌慌张张,不过图碎银几两;可偏偏就是这几两碎银,能免饥荒,能定安康 ,能解世人惆怅。。。问:word怎么从第二页开始加页码答&#xff1a…

html语义

1、<Hx> <h1>、<h2>、<h3>、<h4>、<h5>、<h6>,作为标题使用&#xff0c;并且依据重要性递 减。 <h1>是最高的等级。 2、<p>作为段落 利用行高(line-height)很容易的定义出行间距 3、<ul>、<ol>、<li>…

一起写框架-Ioc内核容器的实现-对象的调用-属性注入容器的对象(十)

实现功能 需求&#xff1a;在类的成员属性使用Autowirde注解注入容器中的对象。 实现思路 要实现这个功能。我们首先要思考一个问题&#xff1a;类与类的关系是在调用的建立的&#xff0c;还是说在创建对象的时候就就将建立了&#xff1f; ---我实现的方案是&#xff0c;在在程…

2064: 分裂 - BZOJ

Description 背景&#xff1a; 和久必分&#xff0c;分久必和。。。 题目描述&#xff1a; 中国历史上上分分和和次数非常多。。通读中国历史的WJMZBMR表示毫无压力。 同时经常搞OI的他把这个变成了一个数学模型。 假设中国的国土总和是不变的。 每个国家都可以用他的国土面积代…

android h5使用缓存_Android SDK 的 H5 打通方案演进 | 数据采集

一、前言近年来&#xff0c;混合开发越来越流行&#xff0c;App 与 H5 的打通需求也越来越迫切。那什么是 App 与 H5 打通呢&#xff1f;所谓 “打通”&#xff0c;是指 H5 集成 JavaScript 数据采集 SDK 后&#xff0c;H5 触发的事件不直接同步给服务端&#xff0c;而是先发给…

渐渐褪色的彩虹 好像一个梦

渐渐褪色的彩虹 好像一个梦 ——初梦 好像从来没写过游记呢...就权当记流水账随便写一些吧 11.10 Day 0 期待又紧张&#xff0c; 像以前一样坐高铁&#xff0c; 车上打了打几个板子&#xff0c;抵达广州&#xff0c; 时间过的真快啊... 到达酒店&#xff0c; 这也许又(?)是我…

php 开发框架 (资料收集)

PHP最流行的框架是Laravel, Symfony, CodeIgniter, Yii 1 and 2&#xff0c;Phalcon 和其他一些&#xff0c;这些工具能帮你创建功能强大而整洁的应用程序 Laravel与thinkPHP的异同点 主要区别:(thinkPHP更适合国人的编码习惯) TP5更简单实用&#xff0c;文档丰富&#xff0c;…

Android的Button按钮,ACTION_UP事件不触发解决方案

在android 编程时&#xff0c;有时候要实现当Button一直按下的时候&#xff0c;执行一些逻辑代码&#xff0c;当按钮弹起的时候&#xff0c;终止这些逻辑代码的执行。 比如在 设置页面的滑动开关时&#xff0c;如果不监听ACTION_CANCEL&#xff0c;在滑动到中间时&#xff0c;如…

简单人物画像_你真的理解用户画像吗?| 船说

“「设计师沙龙」是ARK下半年开始逐渐形成的传统&#xff0c;由ARKers自发组织&#xff0c;分为视觉和交互两类&#xff0c;每月各举办一次。大家围绕一个话题展开&#xff0c;聊聊行业最新案例和工作上的心得&#xff0c;帮助大家共同进步。ARKers表达的观点均为个人见解&…

try catch线程问题???

try。。。catch 在遇见异常是会开启一个新的线程&#xff0c;用来处理异常&#xff0c;转载于:https://www.cnblogs.com/Flyrun/p/7828788.html

thinkphp 3 升到 thinkphp 5 或更高 ( 资料收集)

https://www.cnblogs.com/shy-/p/10447827.html thinkphp3.2升级至thinkphp5.0.24 view文件# 修改文件名# 把tp3.2.3\app\module\view文件夹下所有文件夹拷贝至tp5\app\module\view打开cmd命令窗口&#xff0c;cd至view文件夹下&#xff0c;执行dir /b 1.bat使用notepad打开…

emoji表情引发的JNI崩溃

今天突然接到客服那边的反馈说&#xff0c;有玩家反馈进游戏后不久就崩溃了&#xff0c;我先是怀疑网络问题&#xff0c;因为一连接聊天成功后就挂了。之后用logcat抓日志&#xff0c;发现挂在jni那里了 JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8…

[Java]向上/下转型Casting

一、向上转型。 通俗地讲即是将子类对象转为父类对象。此处父类对象可以是接口。 1&#xff0c;向上转型中的方法调用。 看下面代码&#xff1a; 注意这里的向上转型&#xff1a;Animal bnew Bird(); //向上转型b.eat(); 此处将调用子类的eat()方法。原因&#xff1a;b实际指向…

8cm等于多少像素_「前端剑指offer第5期」物理像素、逻辑像素、CSS像素、PPI、设备像素比是什么...

# 提问物理像素、逻辑像素、CSS像素、PPI、设备像素比是什么&#xff1f;# 回答物理像素代表屏幕上有多少个点&#xff0c;比如1080x2340表示屏幕一排包含1080个物理像素点。逻辑像素表示屏幕展示物体的视觉尺寸是多少。逻辑像素相同表示物体看起来或者打印出来大小一样&#x…

Python学习之路:函数介绍

编程&#xff1a;面向对象&#xff1a;华山派----->类---->class 面向过程&#xff1a;少林派----->过程--->def 一段段的函数和功能包含在过程中 函数式编程&#xff1a;逍遥派--->函数---->def 过程就是没有return返回值的函数 函数的定义&#xff1a;数学…

php中获取系统信息的方法

2019独角兽企业重金招聘Python工程师标准>>> $root getenv(DOCUMENT_ROOT); 服务器文档根目录$port getenv(SERVER_PORT); 服务器端口$file getenv(SCRIPT_NAME); 当前执行文件$ua getenv(HTTP_USER_AGENT); 用户UA$method getenv(REQUEST_METHOD); 请求方法$p…

[独家全程图解]ThinkPHP6框架的下载与安装

http://www.php.cn/wenda/159638.html 1. ThinkPHP大事记 2017年4月27日,ThinkPHP5.1-beta.1发布 2017年12月31日, ThinkPHP5.1.0发布,标志着快速进入迭代期 2019年3月3日, ThinkPHP5.1已更新迭代到第35个版本(5.1.35) 2019年3月22日, ThinkPHP5.2的 dev 开发版本也发布了 …