大厂面试官问我:在同步binlog的时候主库是一个时间,从库是一个时间,底层是怎么解决的?【后端八股文八:Mysql日志八股文合集(2)】

news2024/11/18 0:32:09

本文为【Mysql日志八股文合集(2)】初版,后续还会进行优化更新,欢迎大家关注交流~

大家第一眼看到这个标题,不知道心中是否有答案了?在面试当中,面试官经常对项目亮点进行深挖,来考察你对这个项目亮点的理解以及思考!这个时候,你如果可以回答出面试官的问题,甚至是主动说出自己的思考,那在面试中是大大加分的~

redo日志的格式

type:表示redo日志的类型
spaceID:表空间ID
page number:页号
data:redo日志的具体内容

mysql的事务执行成功的标志是什么

binlog成功写入就代表事务成功了。

redo log和binlog的作用

redo log是innodb提供的,为了确保事务的持久性。防止在发生故障后,有数据还未写入磁盘。
binlog是sql server提供的,为了主从复制。

讲一下redo log和binlog怎么保持一致性

先写redo log,然后redo log进入prepare状态并通知执行器,然后执行器写binlog,写完后,标志着事务成功了,然后将redo log commit。

mysql的redo log和checkpoint怎么搭配的

Checkpoints是一种保险措施,会定期或在空闲时触发。它将内存中的数据写回到磁盘,同时更新Redo Log,这样即使数据库崩溃,也能通过Redo Log来恢复数据。

Redo Log记录了修改,而Checkpoints保证这些修改被写回磁盘,以确保数据的持久性和恢复能力。

两阶段提交

当有数据修改时,会先将修改redo log cache和binlog cache然后在刷入到磁盘形成redo log file,当redo log file全都刷入到磁盘时(prepare 状态)和提交成功后才能将binlog cache刷入磁盘,当binlog全部刷新到磁盘后会记录一个xid,然后在relo log file上打上commit标志(commit阶段)。

脏页刷新

脏页指的是已被修改但尚未写入到持久存储(如磁盘)的内存页面。脏页刷新是将这些被修改的内存页面写入到持久存储的过程。

undoLog存在硬盘中还是内存中?undolog在内存中是怎么放的?对每个内存而言或者每个数据库连接而言?

undolog 的存储位置:

  • undolog 主要存储在磁盘上的表空间中,而不是内存中。
  • 每个事务都会有自己的 undolog 记录,用于该事务的回滚操作

undolog 在内存中的存储方式:

  • undolog 在内存中是以 undo 段的形式存在的。
  • undo 段是 InnoDB 存储引擎中的一个重要组成部分,用于存储事务的 undo 信息。
  • 每个数据库连接都会有自己的 undo 段,undo 段存储在 InnoDB buffer pool 的共享池中。

undolog都有那些参数?

undolog 的主要参数:

  • innodb_undo_logs:控制 InnoDB 使用的 undo 日志的数量,默认为 128。
  • innodb_undo_tablespaces:控制 undo 日志存储的表空间数量,默认为 2。
  • innodb_undo_log_truncate:控制 undo 日志的自动截断功能。
  • innodb_max_undo_log_size:控制单个 undo 日志的最大大小。

其他相关参数:

  • innodb_rollback_segments:控制 InnoDB 中事务回滚段的数量。
  • innodb_purge_threads:控制 InnoDB 后台 purge 线程的数量,用于清理 undo 日志。

redolog、undolog、binlog、relaylog作用、写入时机?如何保证断电数据一致

各种日志的作用和写入时机:

  • redolog(redo log): 记录数据页修改情况,用于事务的持久化和crash recovery,在事务commit时写入
  • undolog(undo log): 记录数据修改前的值,用于事务回滚,在事务开始时写入
  • binlog: 记录数据库的变更操作,用于主从复制和数据恢复,在事务commit时写入
  • relaylog: 从库上的binlog,记录从库接收的主库binlog事件

为了保证断电数据一致性:

  • 先写redolog, 再写binlog。redolog保证事务ACID,binlog用于备份和复制
  • 系统崩溃时,先通过redolog进行crash recovery,然后再应用binlog进行数据恢

undolog 日志越来越大,怎么解决

  • 可以通过定期执行OPTIMZE TABLE来回收undolog空间
  • 对于大事务,可以考虑使用SAVEPOINT来减少undolog

binlog什么时候写入

binlog的写入时机:

  • 事务commit时才会写入binlog,保证atomicity
  • 对于DDL语句,在执行完成后会立即写入binlog

现在有100条数据,我改变表的结构增加一个一段,binlog有什么变化?

  • 增加一个字段,会产生一条ALTER TABLE语句写入binlog

binlog支持哪几种数据类型

  • binlog支持MySQL支持的所有数据类型

Binlog什么情况下会产生?

  • DML(INSERT/UPDATE/DELETE)语句
  • DDL(CREATE/ALTER/DROP)语句
  • 存储过程/函数的调用
  • 触发器的执行

Binlog事件驱动模型有什么坏处?

  • 吞吐量相对较低,因为需要频繁地写入binlog
  • 对于大事务,可能会产生较大的binlog文件,同步效率降低

怎么实现主从同步插件?

(参考binlog)

实现主从同步的典型方式是使用MySQL的复制功能。主库将数据变更记录到binlog日志中,从库通过读取主库的binlog日志来同步数据。这个过程主要包括以下步骤:

    • 主库开启binlog日志记录
    • 从库配置连接主库,并开启复制线程读取主库的binlog
    • 从库将读取的binlog事件应用到自己的数据库中

binlog逐条执行会有什么问题?

binlog逐条执行的问题是速度较慢,因为需要单独执行每条SQL语句。解决方法是可以将binlog日志批量执行,即一次性执行多个事件,提高同步效率

binlog怎么防止数据丢失

为了防止数据丢失,可以采取以下措施:

    • 配置双向或多源复制,互为主从
    • 开启binlog的GTID模式,可以实现故障切换时的数据一致性
    • 周期性备份binlog日志,并定期校验备份数据

binlog日志监听具体怎么实现

binlog日志监听可以通过访问MySQL的复制接口实现,例如使用MySQL Replication Connector API。这样可以监听binlog事件,并作相应的同步处理

在同步binlog的时候主库是一个时间,从库是一个时间,底层是怎么解决的?/ 同一个sql主库和从库是不一致的,binlog是怎么让他们同步的?/ 主库生成的sql和从库生成的sql不一定一致,mysql有没有做过什么处理?

主从时钟不一致问题,MySQL的复制功能会自动处理。从库在应用binlog事件时,会根据事件的时间戳来执行,而不是按照从库的系统时间。对于主从SQL不一致的情况,MySQL复制也有相应的机制来处理,例如使用statement based或row based复制等。

持久化先提交redolog还是binlog

通常是先提交redolog,再记录binlog。

 后期新的八股文合集文章会继续分享,感兴趣的小伙伴可以点个关注~

 更多精彩内容以及免费资料请关注公众号:绝命Coding

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

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

相关文章

国产压缩包工具——JlmPackCore SDK说明(二)——JlmPack_Create函数说明

一、JlmPack_Create函数说明 JlmPack_Create函数是创建jlm压缩文件的核心函数,最大允许CATALOG_MAX_LIMIT(请参考Config.h)个目录,意思是包括文件夹和文件在内,遍历整个列表最大允许CATALOG_MAX_LIMIT个目录对象&#…

Zabbix HA高可用集群部署

Zabbix HA高可用集群介绍 关键基础设施通常需要高可用性 (HA),因为这些基础设施几乎不会造成停机。因此,对于任何可能失败的服务,都必须有一个故障转移选项,以便在当前服务失败时接管。 Zabbix 提供了易于设置的本机高可用性解决…

智慧渔港:海域感知与岸线监控实施方案(智慧渔港渔船综合管控平台)

文章目录 引言I 技术栈1.1 物理结构图1.2 功能逻辑结构图II 云台(大华)2.1 设备网络SDK运行在Mac平台2.2 WEB无插件开发包III 术语3.1 渔业引言 利用渔船现有的定位导航通讯设备等资源,实现岸线和近岸海域内违法船舶和可疑船舶预警、抓拍、跟踪和行为分析。 在渔船上安装风…

2024百元蓝牙耳机哪个好?2024性价比最高的蓝牙耳机推荐

2024想要在百元左右找到一款好用的性价比高的蓝牙耳机,确实是个不小的挑战。市场上各种耳机品牌和型号琳琅满目,各有各的特点。你可能会疑惑,如何才能在预算内挑选到一款性价比高、音质好的耳机呢?这篇文章将为你提供一些选购百元…

湖南省教育网络协会莅临麒麟信安调研教育网络数字化建设及教育信创发展情况

6月28日下午,湖南省教育网络协会理事长张智勇、秘书长刘志勇、副理事长黄旭、胡洪波、周中伟等协会相关负责人一行莅临麒麟信安,就湖南省教育网络数字化建设、教育信创工作等主题进行深入调研。麒麟信安副总裁王攀热情接待。 协会成员一行来到麒麟信安展…

1978Springboot在线维修预约服务应用系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot在线维修预约服务应用系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发 ),系统具有完整的源代码和…

中国智能工厂自动化集成商100强:广东23家,江苏20家,上海浙江紧随其后

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 更多的海量【智能制造】相关资料,请到智能制造online知识星球自行下载。 在数字化、智能化的浪潮中,中国智能工厂自动化集…

下代iPhone或回归可拆卸电池,苹果这操作把我看傻了

刚度过一个愉快的周末,苹果又双叒叕摊上事儿了。 iPhone13 系列被曝扎堆电池鼓包了。 早在去年,就有 iPhone13 和 iPhone14 用户反馈过类似的问题,表示在手机仅仅使用了一年多的时间就出现了电池鼓包的情况,而且还把屏幕给撑起来了…

SAP Build 3-调用SAP BAPI和调用S4HC API

1. 调用SAP BAPI 1.1 前提 项目已创建 SAP环境登录正常 1.2 引入BAPI SDK 商店中下载BAPI SDK Process中导入BAPI SDK 1.3 新建action group 新建action group时,会要求填写SAP登录信息,根据连接类型分为SSO,Basic和Custom 如果选择SS…

【办公软件使用分享—Word篇】实用技巧 一学就会 沈阳电脑办公软件基础培训

在平时的工作学习中,Word真真是让很多人头疼的一件事,今天给大家分享20个案例,感受下Word真正的力量! 1.插入自动目录 没有目录的文档不是一份合格的文档,很多人认为在Word里插入目录是一件很麻烦的事,其…

Soul打造安全社交元宇宙环境,全力守护用户线上社交安全

在数字化时代的浪潮中,智能安全线上社交正成为人们日常生活中的重要组成部分。随着人们对社交媒体和在线平台依赖程度的不断增加,保障个人信息安全和网络安全变得至关重要。在此背景下,社交平台致力于采取多种措施来保障用户的隐私安全,提升社交体验的质量和安全性。而Soul全方…

Linux[高级管理]——Squid代理服务器的部署和应用(反向代理详解)

🏡作者主页:点击! 👨‍💻Linux高级管理专栏:点击! ⏰️创作时间:2024年6月24日11点11分 🀄️文章质量:95分 目录 ————前言———— Squid的几种模式…

高效的向量搜索算法——分层可导航小世界图(HNSW)

最近在接触大模型相关内容,发现一种高效的向量搜索算法HNSW,这里做一下记录。 在之前自己也接触过一段时间的复杂网络(网络科学),没想到,将网络科学的思想引入到向量搜索算法中,可以产生令人眼前…

植物大战僵尸杂交版手机下载与安装全攻略

植物大战僵尸杂交版是一款深受玩家喜爱的策略冒险游戏,以其丰富的植物种类、多样的关卡设计和趣味的玩法著称。本文将为您提供详细的下载与安装教程,帮助您快速上手,享受游戏带来的乐趣。 游戏简介 植物大战僵尸杂交版在传统玩法的基础上&a…

C++修饰符类型

一、存储类运算符 auto(自动存储类,但在现代C中,它通常用于自动类型推导) register(建议编译器将变量存储在寄存器中,但现代编译器通常忽略此关键字) static(静态存储类&#xff…

zdppy_api+vue3+antd开发前后端分离的预加载卡片实战案例

后端代码 import api import upload import timesave_dir "uploads"async def rand_content(request):key api.req.get_query(request, "key")time.sleep(0.3)return api.resp.success(f"{key} " * 100)app api.Api(routes[api.resp.get(&qu…

泛型的使用(<T>)

文章目录 前言一、泛型是什么?二、泛型的使用 1.定义泛型类2.泛型的常规用法总结 前言 强制类型转换存在一定隐患,如数据丢失、内存溢出、运行时错误、程序逻辑错误等。所以提供了泛型机制,使程序员可以定义安全的数据类型进行操作。通俗的理…

比较(五)利用python绘制棒棒糖图

比较(五)利用python绘制棒棒糖图 棒棒糖图(Lollipop plot)简介 棒棒糖图实际上是修饰后的条形图。当在处理大量的值,并且当这些值都很高时,棒棒糖图就很有用。 快速绘制 基于matplotlib import pandas as…

基于单片机的 LED 花样照明时钟设计

摘要 : 本设计是基于单片机的 LED 花样照明 , 并附加时钟设计 . 单片机也叫微控制器 ( Micro Control Unit, 简称 MCU ), 因其价格低廉 , 功能强大 , 在实际应用中得到广泛认可 . 本设计…

基于单片机的 LED 照明灯智能调光系统设计

摘  要: 社会经济的不断发展,推动了智能化生活的进程,智能调光技术开始广泛应用在生活中,人们也逐渐提高了灯光亮灯率等的要求。基于此,笔者主要设计了基于单片机的 LED 照明灯智能调光系统,希望能够为相关…