Mysql之binlog日志浅析

这篇具有很好参考价值的文章主要介绍了Mysql之binlog日志浅析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、binlog日志简介

  Binlog是MySQL数据库中的二进制日志,用于记录数据库中所有修改操作,包括增删改等操作。binlog以二进制格式保存,可以通过解析binlog文件来查看数据库的操作历史记录。binlog日志可以用于数据恢复、数据备份、数据同步等场景。在MySQL数据库中,binlog有两种模式:statement模式和row模式。statement模式记录的是SQL语句,row模式记录的是每一行数据的变化。binlog日志的开启和关闭可以通过设置MySQL的配置文件实现。
  Binlog是MySQL数据库中非常重要的组件之一,Binlog的全称是Binary Log,它是一种二进制日志文件,记录了MySQL数据库中所有的修改操作,包括增、删、改等。这些修改操作可以通过Binlog进行恢复和备份,从而保证数据的安全性和完整性。
  Binlog的作用非常重要,它可以用来进行数据恢复和备份,也可以用来进行数据同步和复制。在进行数据恢复时,可以使用Binlog来恢复数据到某个时间点或某个操作之前的状态,从而保证数据的完整性。在进行数据备份时,可以将Binlog文件备份到另一台服务器上,以便在主服务器出现问题时,可以快速地将备份服务器恢复到与主服务器相同的状态。
  除了数据恢复和备份外,Binlog还可以用来进行数据同步和复制。在进行数据同步时,可以将Binlog文件传输到其他服务器上,从而将数据同步到其他服务器中。在进行数据复制时,可以将Binlog文件传输到备份服务器上,从而将备份服务器上的数据与主服务器上的数据保持一致。

二、binlog日志常用知识点

1、开启binlog日志

  mysql开启binlog的方式是在配置文件中配置参数log-bin = /binlogdir/binlogname,其中binlogdir是binlog日志的存储路径,binlogname是binlog日志文件名前缀,配置了该参数表示启用binlog日志,未配置参数表示禁用binlog日志。生成的binlog日志文件名通常是这样的mybinlog.000001,后面的序号随着使用递增。该参数为静态参数,修改参数后需要重启生效。

mysql binlog日志,mysql,mysql,binlog,数据库,binlog日志,三种日志模式

2、binlog日志文件大小分割

  使用max_binlog_size参数值设定binlog日志文件的大小,举个栗子,max_binlog_size = 1G,表示在binlog日志文件在大于1G的时候进行分割,即文件大小大于1073741824后新生成一个binlog日志文件,序号增1。当然binlog日志文件分割是在结束一个事务操作后的日志记录,所以binlog日志文件实际大小是大于等于1073741824的。

[bdsc@s250 logs]$ ll
total 75945060
-rw-r-----. 1 bdsc bdsc 1074332741 Jun 4 18:53 mybinlog.000001
-rw-r-----. 1 bdsc bdsc 1073822182 Jun 4 20:11 mybinlog.000002
-rw-r-----. 1 bdsc bdsc 1074277669 Jun 4 21:30 mybinlog.000003

mysql binlog日志,mysql,mysql,binlog,数据库,binlog日志,三种日志模式

3、设置binlog日志保留时间

  使用expire_logs_days参数设置binlog日志保存时间,超过日期的binlog日志将自动清除。

mysql> show variables like ‘expire_logs_days’;
±-----------------±------+
| Variable_name | Value |
±-----------------±------+
| expire_logs_days | 7 |
±-----------------±------+
1 row in set (0.01 sec)

4、设置binlog格式

  使用binlog_format参数设置设置binlog日志格式,row格式最可靠,但是会产生大量的binlog日志文件。

mysql> show variables like ‘binlog_format’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| binlog_format | ROW |
±--------------±------+
1 row in set (0.00 sec)

5、查看binlog日志内容

  binlog日志文件是二进制格式,直接查看是乱码,我们可以使用mysqlbinlog命令查看日志文件。日志文件里会记录日志的起始位置,以及执行的sql语句。查看的时候还可以使用参数查看指定时间段内的某数据库的日志。也可以使用命令“mysqlbinlog --start-postion=107 --stop-position=1000 -d 库名 二进制文件”查看指定位置之间的某数据库日志。

mysqlbinlog --start-datetime=‘2023-06-01 00:00:00’ --stop-datetime=‘2023-06-10 00:00:00’ -d utest mybinlog.000068

mysql binlog日志,mysql,mysql,binlog,数据库,binlog日志,三种日志模式

mysql binlog日志,mysql,mysql,binlog,数据库,binlog日志,三种日志模式

6、按照binlog名称清理binlog日志

  我们可以在sql脚本中使用“PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 7 DAY);”命令清理历史binlog日志,也可以在交互模式下按照名称清理binlog日志。

mysql> purge binary logs to ‘mybinlog.000005’;
Query OK, 0 rows affected (0.19 sec)

mysql binlog日志,mysql,mysql,binlog,数据库,binlog日志,三种日志模式

7、按照时间清理binlog日志

  我们可以使用命令purge binary logs before time方式删除指定时间前的binlog日志。

mysql> purge binary logs before ‘2023-06-5 10:12:00’;
Query OK, 0 rows affected (0.55 sec)

mysql binlog日志,mysql,mysql,binlog,数据库,binlog日志,三种日志模式

8、导出binlog日志

  导出binlog日志文件实际上就是查看的时候通过重定向的方式将日志内容输入到指定的文件。

[bdsc@s250 logs]$ mysqlbinlog --start-datetime=‘2023-06-01 00:00:00’ --stop-datetime=‘2023-06-10 00:00:00’ mybinlog.000068 > /tmp/utest.log

mysql binlog日志,mysql,mysql,binlog,数据库,binlog日志,三种日志模式

9、记录部分binlog日志

  可以使用binlog-do-db、binlog-ignore-db、binlog-do-table、binlog-ignore-table这四个参数自定义需要记录binlog日志的数据库和表。这四个参数常用于mysql搭建部分表主从模式,见博文Mysql之部分表主从搭建及新增表。

三、binlog日志三种格式简介

  MySQL的binlog日志有三种格式,分别是Statement格式、Row格式和Mixed格式。文章来源地址https://www.toymoban.com/news/detail-788497.html

  • Statement格式
    Statement格式是最简单的binlog格式,记录的是执行的SQL语句,可以通过解析SQL语句来恢复数据。这种格式的优点是简单、易于理解和分析,缺点是可能会出现数据不一致的情况,因为同一个SQL语句在不同的环境下可能会产生不同的结果。
  • Row格式
    Row格式是记录每一行数据的变化,包括插入、删除和更新操作。这种格式的优点是数据恢复准确、不会出现数据不一致的情况,缺点是日志量大,对于大量的数据变化会产生大量的日志。
  • Mixed格式
    Mixed格式是Statement格式和Row格式的混合体,MySQL会自动选择使用哪种格式来记录日志。对于简单的SQL语句,使用Statement格式,对于复杂的SQL语句,使用Row格式。这种格式的优点是兼顾了简单和复杂情况下的优点,缺点是可能会出现数据不一致的情况。

到了这里,关于Mysql之binlog日志浅析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库——MySQL数据表添加字段(三种方式)

    MySQL 数据表是由行和列构成的,通常把表的“列”称为字段(Field),把表的“行”称为记录(Record)。随着业务的变化,可能需要在已有的表中添加新的字段。 MySQL 允许在开头、中间和结尾处添加字段。 一个完整的字段包括字段名、数据类型和约束条件。MySQL 添加字段的语

    2024年02月08日
    浏览(91)
  • k8s创建数据库mysql MySQL数据库之日志管理

     本文使用的是本机挂载数据,这样存在一个弊端没有pvc挂载好  重点来了: 这种共享宿主机存储的方法似乎可以解决Mysql数据库数据恢复的场景,我们似乎可以万事大吉了! But ,有的老铁会问:如果我得宿主机挂了怎么办?或者Pod没有在上一次节点上拉起,而是在新的节点

    2023年04月27日
    浏览(89)
  • mysql-数据库-在表中添加数据三种方式

    创建完成后,就可以进行添加数据的操作了(表的名字是自己起的),记得和下面的名字匹配上就行。 1.第一行数据,使用第一种形式 2.第二行数据,指定你要指定要插入字段 4.使用一条insert into语句插入多条记录 以下仅供参考: 完成后,即可查看表中的数据

    2024年02月08日
    浏览(50)
  • Mysql数据库(3)—架构和日志

    Mysql的架构设计 Mysql分为 Server层和存储引擎层: Server层 主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器

    2024年02月10日
    浏览(54)
  • 《MySQL高级篇》十五、其他数据库日志

    我们在讲解数据库事务时,讲过两种日志: 重做日志 、 回滚日志 。 对于线上数据库应用系统,突然遭遇 数据库宕机 怎么办?在这种情况下,定位宕机的原因就非常关键。可以查看数据库的错误日志。因为日志中记录了数据库运行中的诊断信息,包括了错误、警告和注释等信

    2024年02月14日
    浏览(62)
  • MySQL基础(三十六)其他数据库日志

    千万不要小看日志 。很多看似奇怪的问题,答案往往就藏在日志里。很多情况下,只有通过查看日志才能发现问题的原因,真正解决问题。所以,一定要学会查看日志,养成检查日志的习惯,对提升你的数据库应用开发能力至关重要。 MySQL8.0 官网日志地址:“ https://dev.mys

    2024年02月05日
    浏览(64)
  • 数据库系列文章 之 MySQL分表的三种方法

    先说一下为什么要分表 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。 根据个人经验,mysql执行一个sql的过程如下: 1,接收到sql;2,把sql放到排队队列中

    2024年02月16日
    浏览(44)
  • MySQL数据库——MySQL慢查询日志(Slow Query Log)

    慢查询日志用来记录在 MySQL 中执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率低,以便进行优化。 通俗的说,MySQL 慢查询日志是排查问题的 SQL 语句,以及检查当前 MySQL 性能的一个重要功能。如果不是调优需要,一般不建议启动该

    2024年02月06日
    浏览(62)
  • 【MySQL高级篇笔记-其他数据库日志(下) 】

    此笔记为尚硅谷MySQL高级篇部分内容 目录 一、MySQL支持的日志 1、日志类型 2、日志的弊端 二、慢查询日志(slow query log) 三、通用查询日志(general query log) 1、问题场景  2、查看当前状态 3、启动日志 方式 1 :永久性方式 方式2:临时性方式  4、查看日志 5、停止日志 方式1:永

    2024年02月08日
    浏览(147)
  • MySQL-备份+日志:介质故障与数据库恢复

    本关任务: 备份数据库,然后再恢复它。 为了完成本关任务,你需要掌握: 1.MySQL的恢复机制; 2.MySQL提供的备份与恢复工具。 和大多数DBMS一样,MySQL利用备份、日志文件实现恢复。 具体理论知识在此不详细介绍。 MySQL提供了以下工具: 逻辑备份工具:mysqldump 物理备份工具

    2024年02月05日
    浏览(89)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包