写点什么

MySQL 的 binlog 有啥用,谁写的,在哪里,java 框架技术本身

作者:MySQL神话
  • 2021 年 11 月 27 日
  • 本文字数:1093 字

    阅读完需:约 4 分钟

对于大部分研发同学来说,肯定听说过 bin log。然后却不一定知道 binlog 在哪里?谁写的?怎么配置 binlog?以及 binlog 有啥用。所以接下来的几篇文章,我们一起看看 binlog 的二三事,让你更好的理解 binlog。


二、什么是 bin log?




bin log 是 MySQL 的二进制日志文件,翻译成中文名反到是感觉怪怪的。所以说下面直接称他为 binlog。


我们都知道 MySQL 分为两大部分。上层是 MySQL-Server,下层是可插拔的存储引擎。



binlog 就是由 MySQL 的 Server 层产生。


三、它在哪里?




binlog 存放的位置由 datadir 参数控制。


你可以通过下面的方式查看到它



知道了 binlog 具体在哪里,你就可以看一眼,如下



目录下有两种文件:mysql-bin.0000XX 和 mysql-bin.index


前者保存着对 MySQL 更改的逻辑


而后者长下面这样,估计你一看就懂了~



四、bin log 的相关配置




一般关于 binlog 的配置都写在 MySQL 的配置文件中: my.cnf , 以方便启动 mysql 时直接让这些配置生效


作为了解,你可以大概搂一眼 binlog 的配置项


[mysqld]

binlog 相关配置

指定 binlog 日志存储的位置

datadir = /home/mysql/mysql/var

规范 binlog 的命名为 mysql-bin.0000XX

如果加这行配置,binlog 文件名为主机名

log-bin = mysql-bin

索引当前所有的 binlog

log-bin-index = mysql-bin.index

最大的大小

max


《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享


_binlog_size = 1G

binlog 的 sync 时机

sync-binlog = 1

binlog 的格式

binlog-format = ROW

保留七天的 binlog

expire_logs_days = 7


五、binlog 有啥用?




如果说 redolog 中记录的是偏向物理层面的记录,如:对哪个数据页的那个记录做了什么修改。


那么 binlog 中记录的是偏向逻辑层面的记录:如:对 xxx 表中的 id=yyy 的行做做了什么修改,更改后的值是什么。


binlog 不会记录你的 select 、show 这类的操作。


你可以在 query log 中找到曾经执行过的诸如 select、show 这种仅查询的 SQL。


常见的 binlog 有如下的作用。


  1. delete 没加 where 条件?不慌!binlog 可以帮你恢复数据

最后

这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的 Redis 使用者都是一份非常完美的教程了。



整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~


你的支持,我的动力;祝各位前程似锦,offer 不断!!!


本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

用户头像

MySQL神话

关注

还未添加个人签名 2021.11.12 加入

还未添加个人简介

评论

发布
暂无评论
MySQL的binlog有啥用,谁写的,在哪里,java框架技术本身