广告
返回顶部
首页 > 资讯 > 数据库 >MySQL的binlog日志的简介与查看
  • 329
分享到

MySQL的binlog日志的简介与查看

mysql数据库javaSpringBoot原力计划 2023-10-22 07:10:09 329人浏览 独家记忆
摘要

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 P

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦
💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通
😁 2. 毕业设计专栏,毕业季咱们不慌忙,几百款毕业设计等你选。
❤️ 3. python爬虫专栏,系统性的学习爬虫的知识点。9.9元买不了吃亏,买不了上当 。python爬虫入门进阶
❤️ 4. Ceph实战,从原理到实战应有尽有。 Ceph实战
❤️ 5. Java高并发编程入门,打卡学习Java高并发Java高并发编程入门

文章目录

1、binlog日志是什么

binlog主要用于记录Mysql中的数据库操作,它包括DDL和DML语句(除了查询语句)。它以事件的形式记录,它是一个二进制文件。mysql的二进制日志是事务安全型的。一般来说开启二进制日志大概会有1%的性能损耗(参见Mysql官方中文手册 5.1.24版)。二进制有两个最重要的使用场景:

  1. MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到master-slave数据一致性的目的。
  2. 数据恢复,通过使用 mysqlbinlog 工具来恢复数据。

binlog日志主要包括两类文件:二进制索引文件(文件名后缀为.index)用于记录所有二进制文件,二进制日志文件(文件名后缀为.0000*),记录数据库中所有的DDL和DML语句。

2、binlog日志如何查看

binlog有三种模式

fORMat定义优点缺点
statement记录的是修改SQL语句日志文件小,节约IO,提高性能准确性差,对一些系统函数不能准确复制或不能复制,如now0.uuid0等
row记录的是每行实际数据变化准确性强,能准确复制数据的变更日志文件大,较大的网络10和磁盘lO
mixedstatement和row模式的混合准确性强,文件大小适中有可能发生主从不一致问题

业内目前推荐使用的是row模式,准确性高,虽然说文件大,但是现在有SSD和万兆光纤网络,这些磁盘IO和网络IO都是可以接受的。mysql默认的也是row模式。

binlog日志文件是二进制文件,不能直接查看。可以通过下面的命令进行查看

mysqlbinlog mysql-bin.00001

如果是row模式的话

mysqlbinlog -vv mysql-bin.00001
2.1. 查看binlog日志是否开启

在这里插入图片描述

mysql> show master status; #查看当前正在写入的binlog文件

如果没有开启的话则可以通过修改 my.ini (windows环境下)或者/etc/my.cnf 配置文件的 log-bin选项。

在配置文件中加入 log-bin 配置,表示启用binlog,如果没有给定值,写成 log-bin=,则默认名称为主机名。(注:名称若带有小数点,则只取第一个小数点前的部分作为名称)

[mysqld]log-bin=my-binlog-name
2.2. 通过mysqlbinlog命令查看binlog日志

mysqlbinlog 是一个查看mysql二进制日志的工具,可以把mysql上面的所有操作记录从日志里导出,默认的安装路径是 :/usr/local/mysql/bin/mysqlbinlog

可以通过 find / -name "mysqlbinlog" 或者 which mysqlbinlog 命令来查找mysqlbinlog 工具的路径。

如果输入 mysqlbinlog 命令提示找不到命令的话,则可以通过建立软链的方式。比如我的mysqlbinlog命令在 /data/server/mysql/bin/mysqldump 路径下,可以通过如下命令建立软链解决此问题

ln -s /data/server/mysql/bin/mysqldump /usr/bin/mysqldump

如下是使用mysqlbinlog 命令的基本示例

# mysqlbinlog 的执行格式mysqlbinlog [options] log_file ...# 查看bin-log二进制文件(shell方式)mysqlbinlog -v --base64-output=decode-rows /var/lib/mysql/master.000003# 查看bin-log二进制文件(带查询条件)mysqlbinlog -v --base64-output=decode-rows /var/lib/mysql/master.000003 \    --start-datetime="2023-09-11 00:00:00"  \    --stop-datetime="2023-09-12 00:00:00"   \    --start-position="5000"    \    --stop-position="20000"

这里设置了日志查询的开始时间(2023-09-11 00:00:00),结束时间(2023-09-12 00:00:00),开始位置(5000)以及结束位置(20000)。

更多的mysqlbinlog命令的操作参数可以通过 mysqlbinlog --help进行查看。

在这里插入图片描述
在这里插入图片描述

mysqlbinlog 日志的部分内容

#230910 15:38:30 server id 1  end_log_pos 328 CRC32 0x3bb60240 Querythread_id=63exec_time=0error_code=0BEGIN;# at 328# at 575#230910 15:38:30 server id 1  end_log_pos 658 CRC32 0x20b2fcd1 Table_map: `db1`.`table1` mapped to number 197# has_generated_invisible_primary_key=0# at 658#230910 15:38:30 server id 1  end_log_pos 771 CRC32 0xa0d5cf45 Write_rows: table id 197 flags: STMT_END_F### INSERT INTO `db1`.`table1`### SET###   @1=1###   @2=2190000159000076193###   @3=585###   @4=3###   @5=4###   @6=2###   @7=NULL###   @8='2020-06-05 17:04:51'###   @9='2023-09-10 15:38:30'###   @10='1268831135392108546'###   @11=0# at 771#230910 15:38:30 server id 1  end_log_pos 802 CRC32 0xecd87f75 Xid = 90733COMMIT;

上面的输出包括信息

position: 位于文件中的位置,即第一行的(# at 230910),说明该事件记录从文件第230910 个字节开始timestamp: 事件发生的时间戳,即第二行的(#190308 15:38:30)server id: 服务器标识(1)end_log_pos 表示下一个事件开始的位置(即当前事件的结束位置+1)thread_id: 执行该事件的线程id (thread_id=63)exec_time: 事件执行的花费时间error_code: 错误码,0意味着没有发生错误type:事件类型Query

增加 --base64-output=decode-rows –v 选项解析

(base64-output,可以控制输出语句输出base64编码的BINLOG语句;decode-rows:选项将把基于行的事件解码成一个SQL语句)

mysqlbinlog --no-defaults --database=db1 --base64-output=decode-rows -v  mysql-bin.000269>/data/server/binlog.sql

通过这个命令可以将mysql-bin.000269二进制文件的内容写到binlog.sql文件中。

删除binlog

删除binlog 可以通过 reset master 命令来实现。

来源地址:https://blog.csdn.net/u014534808/article/details/132910672

您可能感兴趣的文档:

--结束END--

本文标题: MySQL的binlog日志的简介与查看

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL的binlog日志的简介与查看
    您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 P...
    99+
    2023-10-22
    mysql 数据库 java SpringBoot 原力计划
  • mysql中如何查看binlog二进制日志
    这篇文章给大家分享的是有关mysql中如何查看binlog二进制日志的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。例如,在创建新表或更新现有表上的数据时,这些事件将存储在mysq...
    99+
    2022-10-18
  • MySQL 的日志:binlog
    前言:binlog 用于记录数据库执行写入性操作的日志信息,以二进制的形式保留在磁盘中。它是由 Server 层进行记录的,使用任何存储引擎都会产生 binlog。 实验准备 我们通过 Docker 来对 MySQL binlog 进...
    99+
    2019-08-01
    MySQL 的日志:binlog
  • MySQL日志模块的简介
    这篇文章将为大家详细讲解有关MySQL日志模块的简介,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。目录一、简介二、redo log三. binlog四. 内部工作流程My...
    99+
    2022-10-18
  • Mysql-binlog的查看
    介绍 简介 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全...
    99+
    2023-09-03
    mysql 数据库 sql
  • 【mysql实践】如何查看阿里云RDS的MySQL库中的binlog日志
    背景: 工作中我们为了查看MySQL中数据修改的历史记录时,会通过查看binlog日志。但由于binlog日志是二进制文件,需要解析之后,才能用文本查看工具打开。这次笔者使用flink进行实时统计时就...
    99+
    2023-10-12
    mysql 阿里云 数据库
  • 开启MySQL的binlog日志
    1.判断MySQL是否已经开启binlog SHOW VARIABLES LIKE 'log_bin'; 查看MySQL的binlog模式  show global variables like "binlog%"; 几个...
    99+
    2023-10-23
    mysql 数据库
  • 怎么根据日期来查询mysql的binlog日志
    本篇内容介绍了“怎么根据日期来查询mysql的binlog日志”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2022-10-18
  • MySQL的binlog日志是什么
    小编给大家分享一下MySQL的binlog日志是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!binlog 基本认识MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的D...
    99+
    2022-10-18
  • MYSQL慢查询日志的查看方式
    这篇文章主要介绍“MYSQL慢查询日志的查看方式”,在日常操作中,相信很多人在MYSQL慢查询日志的查看方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MYSQL慢查询日志...
    99+
    2022-10-18
  • MySQL的binlog日志使用详解
    binlog 就是binary log,二进制日志文件,这个文件记录了MySQL所有的DML操作。通过binlog日志我们可以做数据恢复,增量备份,主主复制和主从复制等等。对于开发者可能对binlog并不怎么关注,但...
    99+
    2022-05-25
    MySQL binlog日志使用 MySQL binlog日志
  • 怎么开启MySQL的binlog日志
    小编给大家分享一下怎么开启MySQL的binlog日志,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!binlog 就是binar...
    99+
    2022-10-18
  • 如何开启MySQL的binlog日志
    这篇文章将为大家详细讲解有关如何开启MySQL的binlog日志,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。binlog 就是binary log,二进制日志文件,这个文件记录了mysql所有的dml操...
    99+
    2023-06-14
  • 怎么查看IIS、PHP、MySQL的日志
    本篇内容主要讲解“怎么查看IIS、PHP、MySQL的日志”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么查看IIS、PHP、MySQL的日志”吧!一、IIS 日志打开 IIS,找到网站,右键...
    99+
    2023-07-05
  • mysql的日志文件如何查看
    mysql的日志文件如何查看?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先,介绍一下mysql日志的种类。一般来说,日志有五种,分别为...
    99+
    2022-10-18
  • 查看mysql日志文件的方法
    查看mysql日志文件的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!查看mysql日志文件的方法:首先开启mysql...
    99+
    2022-10-18
  • MySQL中binlog日志的使用方法
    这篇文章主要介绍MySQL中binlog日志的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!binlog 就是binary log,二进制日志文件,这个文件记录了MySQL所有的DML操作。通过binlog日...
    99+
    2023-06-14
  • Ubuntu的cron日志怎么开启与查看
    这篇“Ubuntu的cron日志怎么开启与查看”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Ubuntu的cron日志怎么开...
    99+
    2023-07-04
  • Mysql binlog日志文件过大的解决
    目录1、相关binlog配置2、binlog相关高级设置2.1 改变binlog模式2.2 相关SQL操作binlog磁盘突然报错使用率过大,排查原因,发现mysql的binlog文...
    99+
    2022-11-12
  • mysql两个重要的日志redolog和binlog
    一.redo log 使用原因 在 MySQL 里有这个问题,如果每一次的更新操作都需要写进磁盘,然后磁盘也要找到对应的那条记录,然后再更新,整个过程 IO 成本、查找成本都很高 其实就是 MySQL 里经常说到的 WAL 技...
    99+
    2014-05-05
    mysql两个重要的日志redolog和binlog
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作