MySQL 的 binlog 有啥用,谁写的,在哪里,java 框架技术本身
对于大部分研发同学来说,肯定听说过 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 有如下的作用。
delete 没加 where 条件?不慌!binlog 可以帮你恢复数据
最后
这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的 Redis 使用者都是一份非常完美的教程了。
整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer 不断!!!
评论