首页 > 数据库 >MySQL的日志模块

MySQL的日志模块

时间:2022-09-18 16:48:35浏览次数:90  
标签:binlog log 记录 备份 模块 MySQL 日志 redo

一、redo log

MySQL 里经常说到的 WAL 技术,WAL 的全称是 Write-Ahead Logging,它的关键点就是先写日志,再写磁盘。

(“先写日志” 也是先写磁盘,只是写日志是顺序写盘,速度很快。)

redo log 记录这个页 “做了什么改动”。(只是记录了,但是没有实际更新到数据库里面)

InnoDB 的 redo log 是固定大小的,比如可以配置为一组 4 个文件,每个文件的大小是 1GB。从头开始写,写到末尾就又回到开头循环写。

write pos 是当前记录的位置。

checkpoint 是当前要擦除的位置,也是往后推移并且循环的,擦除记录前要把记录更新到数据文件。

有了 redo log,InnoDB 就可以保证即使数据库发生异常重启,之前提交的记录都不会丢失,这个能力称为 crash-safe。

二、binlog(归档日志)

binlog记录了所有操作语句的逻辑,比如记录这 2022年9月18号下午16:20:00提交了一个语句,将某某表的某个字段的值变为2。

三、实现数据恢复

当需要恢复到指定的某一秒时,比如某天下午两点发现中午十二点有一次误删表,需要找回数据,那你可以这么做:

首先,找到最近的一次全量备份,如果你运气好,可能就是昨天晚上的一个备份,从这个备份恢复到临时库;

然后,从备份的时间点开始,将备份的 binlog 依次取出来,重放到中午误删表之前的那个时刻。

这样你的临时库就跟误删之前的线上库一样了,然后你可以把表数据从临时库取出来,按需要恢复到线上库去。

四、update逻辑

写入redo log,处于prepare阶段,写入binlog,提交事务处于commit状态

设计这种逻辑,是为了保证redo log 和binlog的一致性,保证在恢复数据的时候与业务数据一致,不会出现误差。

 

标签:binlog,log,记录,备份,模块,MySQL,日志,redo
From: https://www.cnblogs.com/carryup/p/16705146.html

相关文章

  • 【MySQL】什么是Mysql执行计划
     执行计划是Mysql如何执行一条sql语句,包括sql查询顺序、是否使用索引、索引信息、查询命中率等信息。基本语法explainselect...InnoDb引擎的执行计划内容id:由一组......
  • 主从复制报错Fatal error:The slave I/O thread stops because master and slave have
    异常在MySQL中开启主从复制失败:原因先确定主机和从机的server-id是否不一样,如果一样也会导致主从复制失败。主机和从机的server-id在/etc/my.cnf配置文件中配置的,下面......
  • 记一次mysql数据被恶意篡改的恢复
    客户员工与客户公司产生了矛盾离职,离职的时候系统账号权限还未收回,此员工使用账号登录系统之后恶意篡改用户数据被发现。系统本身做了mysql主从同步,但是因为是恶意篡改数......
  • SpringBoot校园博客系统 博客管理系统 开源博客系统 个人博客系统Java Vue MySQL数据
    ......
  • SQL2008至SQL2019缩小日志
    USEabframeworkf2DECLARE@LogFileLogicalNamesysnameSELECT@LogFileLogicalName=NameFROMsys.database_filesWHEREType=1PRINT@LogFileLogicalNameDBCCSHRINK......
  • MySQL数据备份 mysqldump 详解
    MySQL数据备份流程1打开cmd窗口通过命令进行数据备份与恢复;需要在Windows的命令行窗口中进行;l 开始菜单,在运行中输入cmd回车;l 或者win+R,然后输入cmd回车,即......
  • mysql基础命令
    MySQL数据库入门——常用基础命令  1、使用帮助信息  登陆数据库就不介绍了哦  比如说想做创建的数据库的操作,不知道命令,就可以查看帮助信息 mysql>......
  • MySQL常见字符串截取小结
    MySQL截取字符串常见函数有:left()、right()、substring()、substring_index()。从左侧截取字符串用法:left(str,length)描述:left(被截取字符串,截取长度)SELECTLEFT('......
  • 第二十一章 MySQL数据库优化
    一、数据硬件优化(选型)1.数据库选择1.真实的硬件物理机,虚拟化,搭建数据库2.云服务器ECS,自己搭建数据库3.云数据库(RDS,DRDS)2.数据库类型1.OLTP 在线事务处理系统,支持大......
  • MySQL EXPLAIN详解
    Explain简介本文主要讲述如何通过explain命令获取select语句的执行计划,通过explain我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引......