Mysql之binlog日志浅析


aihuafeng66t
克里斯蒂亚诺诺 2024-01-03 16:10:13 57469 赞同 0 反对 0
分类: 资源
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,后面的序号随着使用递增。该参数为静态参数,修改参数后需要重启生效。
————————————————

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
————————————————

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

三、binlog日志三种格式简介
  MySQL的binlog日志有三种格式,分别是Statement格式、Row格式和Mixed格式。

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

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
克里斯蒂亚诺诺L1
粉丝 0 资源 831 + 关注 私信
最近热门资源
停用fcitx输入法并启用ibus输入法  1340
分享一个openkylin 2.0的歌词音乐播发器  1298
如何解决误删/user /home目录  1261
查看服务在启动过程中的时间消耗  1228
docker网络讲解  1170
麒麟系统中记录系统外接的USB存储设备上的文件操作  1152
分享如何使用nmcli管理网络  1121
分享一个编译好的 rtl8188gu 无线网卡驱动程序 (OpenKylin 2.0, 6.1.0-3-generic)  1081
openKylin 2.0中配置ftp服务器  1024
docker file讲解及其实战应用  951
最近下载排行榜
自动化运维精讲,制作不易请多多支持 2
docker网络讲解 1
Java EE企业级应用开发教程 1
停用fcitx输入法并启用ibus输入法 0
分享一个openkylin 2.0的歌词音乐播发器 0
如何解决误删/user /home目录 0
查看服务在启动过程中的时间消耗 0
麒麟系统中记录系统外接的USB存储设备上的文件操作 0
分享如何使用nmcli管理网络 0
分享一个编译好的 rtl8188gu 无线网卡驱动程序 (OpenKylin 2.0, 6.1.0-3-generic) 0
作者收入月榜
1

prtyaa 收益395.77元

2

zlj141319 收益226.97元

3

IT-feng 收益214.43元

4

1843880570 收益214.2元

5

风晓 收益208.24元

6

777 收益173.02元

7

哆啦漫漫喵 收益113.62元

8

Fhawking 收益106.6元

9

信创来了 收益105.92元

10

克里斯蒂亚诺诺 收益91.08元

请使用微信扫码

加入交流群

请使用微信扫一扫!