广告
返回顶部
首页 > 资讯 > 数据库 >PHP面试宝典之Mysql数据库高级篇(二)主从复制
  • 423
分享到

PHP面试宝典之Mysql数据库高级篇(二)主从复制

数据库mysqlphp 2023-09-04 07:09:16 423人浏览 泡泡鱼
摘要

主从复制的原理? 主服务器写,从服务器读; 主服务器将更新语句记录到日志中,从服务器获取主服务器的日志,并写入到自己日志中,从服务器的sql线程监控从服务器日志情况,发现变化,就对日志进行解析并执行

主从复制的原理?

服务器写,从服务器读;

主服务器将更新语句记录到日志中,从服务器获取主服务器的日志,并写入到自己日志中,从服务器的sql线程监控从服务器日志情况,发现变化,就对日志进行解析并执行

Mysql支持哪些复制类型?

基于语句、基于行、混合复制

基于语句:主服务器执行的sql,从服务器再执行一遍;默认复制方式,效率高

基于行:将改变的内容复制过去

混合型:默认基于语句,一旦语句无法精准复制,就采用基于行的复制

主从复制的过程?

主节点开启二进制日志(将sql记录到日志中)

从节点执行sart slave命令,开启主从复制,从节点的i/o线程,连接主节点,并请求指定日志的指定位置,之后的日志内容

主节点接收到请求后,为每一个请求,启动一个dump线程,将请求的日志信息,返回给从节点(包括下一次更新位置)

从节点接收到日志内容后,将日志内容,更新到本机的中继日志,的最末端

从节点的sql线程,监测到中继日志新增了内容后,会将内容解析成sql语句,并在本机执行

主从复制是拉?还是推?

是推;

拉:是通过不停的循环访问主库的数据变更,消耗资源过多,效率低;

推:是主库主动告诉从库数据变化,只有变化时,才会发生交互,消耗资源少

如何推的?

当从库向主库申请数据变更时,需要指定文件、位置,相应的主库会启动一个线程,将变更的记录一条条发送给从库,从库一直监听主库的变化

主从复制方案?

异步复制、半同步复制、全同步复制

异步复制:默认复制方式;主节点事务提交前,不需要经过从节点确认,且不保证日志一定写入到从节点的中继日志中,从服务器的sql线程异步执行中继日志,也不需要从服务器确认,且不保证执行成功

半同步复制:5.5及以后新增;主节点事务提交前,必须确保日志,至少写入到一台从服务器,并执行成功,才能进行事务提交

全同步复制:5.7.17及以后新增;主节点事务提交前,必须确保全部从服务器日志都要写入且执行成功,才能完成提交

当一台从服务器时,半同步和全同步一样吗?

是一样的,全同步就是要保证所有从服务器都执行成功,在只有一台从服务器时,刚好和半同步的原理一致,因此是相同的

如果主从同步失败该怎么办?

使用set全局跳过错误事件

重新连接主数据库,跳过中间同步问题,可能会导致一些数据未同步,可以先保证数据和结构都一致再重新连接

主从复制,数据延迟的原因?

从库太多、从库硬件太差、慢sql、主库写入并发太大、网络延迟

如何解决主从延迟?

强制读取主库数据(会导致主从失效)

检查延迟时间

半同步复制

并行复制

sleep等待方案(主库更新后,读从库之前先sleep一下)

主从复制和读写分离的关系?

读写分离是建立在主从复制的基础上的,通过读写分离提升数据库的并发负载,通过主从复制进行数据同步

如何实现读写分离?

通过路由控制,将更新操作和查询操作分别指向不同数据库,laravel框架的配置文件中,可以配置读库和写库

mysql主从复制和mysql集群的区别?

主从:是通过mysql的复制来保证数据一致性的,可能会有延迟;不满足高可用,主机宕机,需要手动切换,业务会中断;

集群:数据同步是异步的;实时同步,高可用,性能相对较差

集群的工作流程?

主节点在执行提交语句时,将事务发送到从节点;
2:每个从节点都要准备事务的提交,然后向主节点发送消息(准备成功或失败);
3-1:如果都准备成功,主节点会告知所有从节点,提交事务;
3-2:如果有一个失败,主节点会告诉所有从节点,终止事务;
4:从节点按照消息执行后,将结果返回给主节点
5:然后由主节点报告该事务最终是,被提交或终止;

来源地址:https://blog.csdn.net/qq_38989173/article/details/130450074

您可能感兴趣的文档:

--结束END--

本文标题: PHP面试宝典之Mysql数据库高级篇(二)主从复制

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

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

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

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

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作