广告
返回顶部
首页 > 资讯 > 数据库 >日志系统(2)
  • 578
分享到

日志系统(2)

日志系统(2) 2015-12-02 07:12:48 578人浏览 猪猪侠
摘要

redo log redo log:重做日志。每当有操作时,在数据变更之前将操作写入redo log,这样当发生掉电之类的情况时系统可以在重启后继续操作 undo log:称为撤销日志,当一些变更执行到一半无法完成时,可以根据撤销

日志系统(2)

redo log

redo log:重做日志。每当有操作时,在数据变更之前将操作写入redo log,这样当发生掉电之类的情况时系统可以在重启后继续操作
undo log:称为撤销日志,当一些变更执行到一半无法完成时,可以根据撤销日志恢复到变更之间的状态。

redo log位于存储引擎层,InnoDB中有使用。InnoDBredo log是固定大小,比如配置一组4个文件,每个文件的大小为1G,那么总共可以记录4GB的操作。从头开始写,写到末尾就又回到开头循环写。

  • write pos:当前记录的位置,一边写一边后移
  • checkpoint:当前要擦除的位置,是往后推移并且循环的,擦出记录前要把记录更新到数据文件

write poscheckpoint之前是日志还空着的部分,可以用来记录新的操作。如果write pos追上checkpoint,表示日志满了,这时候不能再执行新的更新,得停下来先擦掉一些记录。

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

WALWrite-Ahead Loggin,预写日志系统。在使用WAL的系统中,所有的修改都先被写入到日志中,然后再被应用到系统状态中。通常包含redo和undo两部分信息。
具体来说,当有一条记录需要更新的时候,InnoDB引擎就会先把记录写到redo log里面,并更新内存,这个时候更新就算完成了。同时,InnoDB引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是系统比较空闲的时候做。

binlog

归档日志,位于Server层。

为什么会有两份日志?
最开始Mysql里并没有InnoDB引擎。mysql自带的引擎是MyISAM,但是MyISAM没有crash-safe的能力,binlog日志只能用于归档。而InnoDB是另一个公司以插件形式引入Mysql的,既然只依靠binlog是没有crash-safe能力的,所以InnoDB使用另一套日志系统也就是redo log来实现crash-safe能力。

redo log差别:

  1. redo logInnoDB引擎特有的,binlog是MySQL的Server层实现的,所有引擎都可以使用。
  2. redo log是物理日志,记录的是“在某个数据页上做了什么修改”;binlog是逻辑日志,记录的是这个语句的原始逻辑,比如“给ID=2这一行的c字段加1”。
  3. redo log是循环写的,空间固定会用完,binlog是可以追加写入的,指的是写到一定大小后会切换到下一个,并不会覆盖以前的日志。

误删表后的操作:

  1. 找到最近一次的全量备份,从这个备份恢复到临时库
  2. 从备份的时间点开始,将备份的binlog依次取出来,重放到删除误删除的时刻

MySQLbinlog日志可以用于误操作后的数据恢复工作以及主从复制一致性的工作。

您可能感兴趣的文档:

--结束END--

本文标题: 日志系统(2)

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

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

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

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

下载Word文档
猜你喜欢
  • 日志系统(2)
    redo log redo log:重做日志。每当有操作时,在数据变更之前将操作写入redo log,这样当发生掉电之类的情况时系统可以在重启后继续操作 undo log:称为撤销日志,当一些变更执行到一半无法完成时,可以根据撤销...
    99+
    2015-12-02
    日志系统(2)
  • Rsyslog+H3C日志系统
    一、交换机发送日志到linux主机[9F-3600V2-EI]info-center loghost 192.168.11.36[9F-3600V2-EI]info-center enable 二、linux下配置   1.建立日志文件路径...
    99+
    2023-01-31
    系统 日志 Rsyslog
  • Centos 6.5 ----日志系统Rsyslog
                     &...
    99+
    2022-10-18
  • 怎么将日志信息写入Linux系统日志
    本篇文章为大家展示了怎么将日志信息写入Linux系统日志,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。下面给大家讲解将日志信息写入系统日志/var/log/messages中以及和它的参数:sysl...
    99+
    2023-06-17
  • win7系统怎么查看系统日志
    这篇文章主要为大家展示了“win7系统怎么查看系统日志”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“win7系统怎么查看系统日志”这篇文章吧。一、打开开始菜单,然后选择进入“控制面板”。二、以大...
    99+
    2023-06-28
  • 【项目实战】日志系统
    目录 前言 整体架构 工具类的实现 日期类 文件类 判断文件存在 获取文件路径 创建目录 日志等级的规划 日志信息模块 消息格式化模块 格式化组件 抽象基类 派生子类 日期格式化子类  其他内容格式化子类 格式化类 根据字符创建不同对象 格...
    99+
    2023-10-25
    开发语言 c++
  • Linux syslog 系统日志管理
    Linux syslog 系统日志管理===============================================================================rsysl...
    99+
    2022-10-18
  • MySQL8.0 redo日志系统优化
    背景 现在主流的数据库系统的故障恢复逻辑都是基于经典的ARIES协议,也就是基于undo日志+redo日志的来进行故障恢复。redo日志是物理日志,一般采用WAL(Write-Ahead-Logging)机制,所以也称redo日志为wal日...
    99+
    2021-11-02
    MySQL8.0 redo日志系统优化
  • linux系统日志有哪些
    linux中常见的系统日志有:1./var/log/boot.log,系统启动日志;2./var/log/btmp,记录登录失败信息;3./var/log/cups,记录打印信息;4./var/log/lastlog,记录用户信息;5./v...
    99+
    2022-10-08
  • 什么是Linux系统日志
    本篇内容介绍了“什么是Linux系统日志”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!系统的那些讯息以及应该记录在那些档案, 或如何显示, ...
    99+
    2023-06-10
  • GoLang日志监控系统实现
    目录日志监控系统项目简答介绍系统架构读取模块具体实现日志解析模块日志监控系统 Nginx(日志文件) -> log_process (实时读取解析写入) -> influ...
    99+
    2022-12-15
    GoLang日志监控 GoLang日志
  • Linux系统怎么清除日志
    这篇文章主要介绍Linux系统怎么清除日志,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一种:cat /dev/null > filename cat /dev/null >...
    99+
    2023-06-28
  • linux怎么清空系统日志
    要清空Linux系统上的日志文件,可以使用以下步骤:1. 打开终端,以root用户身份登录。2. 停止所有在使用日志文件的服务,以确...
    99+
    2023-09-22
    linux
  • 数据库日志系统分解
    标题索引日志分类日志操作日志分解日志分类    在数据库系统中日志主要分为6类,具体如下:    1、查询日志:主要记录日常查询的记录; ...
    99+
    2022-10-18
  • ubuntu怎么删除系统日志
    ubuntu中删除系统日志的方法:1、打开ubuntu终端;2、切换root权限并输入“du -h --max-depth=1 /var/log/*”命令查看log日志文件;3、通过“echo > /var/log/syslog.1”格式对...
    99+
    2022-10-16
  • ASP.NET Core的日志系统介绍
    .net core是内置了日志系统的,本文这里简单的介绍一下它的基本用法。如下是一个简单的示例:  var service = new ServiceCollection(...
    99+
    2022-11-13
  • win7如何查看系统日志
    在Windows 7系统中,您可以通过以下方法查看系统日志:1. 打开“控制面板”:点击开始菜单,选择“控制面板”。2. 在控制面板...
    99+
    2023-09-09
    win7
  • Linux系统如何查看日志
    本文将为大家详细介绍“Linux系统如何查看日志”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Linux系统如何查看日志”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知识吧...
    99+
    2023-06-28
  • win11系统日志如何查看
    这篇文章主要介绍“win11系统日志如何查看”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win11系统日志如何查看”文章能帮助大家解决问题。首先右键底部的“Windows徽标”打开右键菜单。 接着...
    99+
    2023-07-02
  • win10系统如何查看系统错误日志
    小编给大家分享一下win10系统如何查看系统错误日志,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!方法/步骤:右键点击win10桌面“此电脑”图标并选择“管理”进入;在打开的计算机管理界面中,依次找到系统工具-事件查看器-...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作