【mysql】binlog日志

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

1.1 基本说明
  • 1.全称binary log,二进制日志
  • 2.记录了所有的DDL语句(Data Definition Language数据定义语言)和DML语句(Data Manipulation
    /məˌnɪpjuˈleɪʃn/ Language数据操作语言)
  • 3.不包括数据查询语句(select、show)
  • 4.作用:灾难时的数据恢复;mysql的主从复制
  • 5.mysql8.0版本,默认二进制日志是开启的
  • 6.使用sql:show variables like ‘%log_bin%’;参数log_bin:ON表示开启;参数log_bin_basename:日志位置
1.2 binlog日志格式
  • 1.statement:基于sql语句的日志记录,记录的是sql语句,对数据进行修改的sql都会记录在日志文件中
  • 2.row:基于行的日志记录,记录的是每一行的数据变更,默认是基于行的日志记录
  • 3.mixed:混合statement和row两种格式,默认采用statement,在某些特殊情况下会自动切换为row进行记录。这些情况是NDB引擎,表的增删改的DML操作会以row格式记录、SQL语句里包含UUID()函数、SQL语句里使用了用户定义函数(UDF)、包含了insert delayed语句、使用了临时表、自增字段被更新
1.3 binlog日志查看
  • 1.日志是以二进制方式存储的,不能直接读取,需要通过二进制日志查询工具mysqlbinlog查看
  • 2.mysqlbinlog -d logfilename 指定数据库名称,只列出指定的数据库相关操作
  • 3.mysqlbinlog -o 忽略掉日志中的前n行命令
  • 4.mysqlbinlog -v 将行事件(数据变更)重构为sql语句
  • 5.mysqlbinlog -vv 将行事件(数据变更)重构为sql语句,并输出注释信息
1.4 binlog日志删除
  • 1.二进制日志长时间不清除会占用大量磁盘空间
  • 2.reset master指令:删除全部binlog日志,删除之后,日志编号,将从binlog.000001重新开始
  • 3.purge master logs to 'binlog.000003’指令:删除000003编号之前的所有日志
  • 4.purge master logs before 'yyyy-mm-dd hh24:mi:ss’指令:删除日志为“yyyy-mm-dd hh24:mi:ss”之前产生的所有日志
  • 5.在mysq的配置文件中配置二进制日志的过期时间,设置之后二进制日志过期会自动删除
  • 6.show variables like ‘%binlog_expire_logs_seconds’;显示当前二进制日志的过期时间,单位秒
1.5 binlog操作示例
  • 1.查询当前日志格式
show variables like '%binlog_format%';

mysql binlog日志,mysql,mysql,数据库,sql

  • 2.查看是否开启了二进制日志
// 有结果表示已开启,若报错则表示未开启
show binary logs;

// 开启binlog, 修改C:\ProgramData\MySQL\MySQL Server 8.0的my.init配置文件
// 日志文件格式
log-bin="DESKTOP-EVRO81H-bin"
// 日志格式
binlog-format=ROW

mysql binlog日志,mysql,mysql,数据库,sql

  • 3.查询二进制日志存放位置
show variables like '%log_bin_basename%';

mysql binlog日志,mysql,mysql,数据库,sql

  • 4.mysqlbinlog命令直接查看日志文件
// 切换到二进制日志文件目录下
cd C:\ProgramData\MySQL\MySQL Server 8.0\Data

// 查看日志文件
mysqlbinlog DESKTOP-EVRO81H-bin.000024
// 按row日志格式基本看不懂,所以要加-v参数

mysql binlog日志,mysql,mysql,数据库,sql

// 能看到一些update语句和insert语句以及表操作的语句
mysqlbinlog -v DESKTOP-EVRO81H-bin.000024

mysql binlog日志,mysql,mysql,数据库,sql

  • 5.设置日志格式为STATEMMENT
// 修改C:\ProgramData\MySQL\MySQL Server 8.0的my.init配置文件,保存后重启
// 日志格式
binlog-format=STATEMENT
  • 6.执行条insert语句后执行mysqlbinlog命令
// cd C:\ProgramData\MySQL\MySQL Server 8.0\Data
// 执行mysqlbinlog DESKTOP-EVRO81H-bin.000025,不需要加-v就能看到insert语句,因为是sql语句
mysqlbinlog DESKTOP-EVRO81H-bin.000025

mysql binlog日志,mysql,mysql,数据库,sql

  • 7.删除binlog日志
// 删除000025之前的日志
purge master logs to 'DESKTOP-EVRO81H-bin.000025';

mysql binlog日志,mysql,mysql,数据库,sql
mysql binlog日志,mysql,mysql,数据库,sql

// reset master清除所有日志
reset master;

mysql binlog日志,mysql,mysql,数据库,sql

  • 8.查看binlog日志过期时间
// 默认30天过期,在my.int设置binlog_expire_logs_seconds便可调整过期时间
show variables like '%binlog_expire%';

mysql binlog日志,mysql,mysql,数据库,sql文章来源地址https://www.toymoban.com/news/detail-640007.html

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

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

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

相关文章

  • k8s创建数据库mysql MySQL数据库之日志管理

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

    2023年04月27日
    浏览(79)
  • sql server 截断和收缩所有用户数据库日志--用游标循环所有正常状态的用户数据库

    在服务器运维活动中,我们经常需要做一项工具就是将好多年的用户数据库日志文件截断并收缩为最小,以节省大量的磁盘空间。当数据库只有一两个时可以手动操作,但数据库数量众多时,就需要采用sql脚本,批量化执行这个过程。 本人写了一段这样的脚本。并且经过验证

    2024年02月06日
    浏览(56)
  • DM8:达梦数据库开启SQL日志sqllog

    在使用数据库过程中,有时候想要查看数据库执行的SQL日志,由于V$SESSIONS 系统视图默认保留10000条,不满足需求,可以配置开启SQLLOG; 登陆达梦数据库管理工具或 disql 执行命令 开启后注意观察数据库log目录的dmsql开头的日志文件,是否达到256MB后正常切换,达到20个日志文件

    2024年02月10日
    浏览(55)
  • 清除SQL Server数据库日志(ldf文件)的方法汇总

    清除SQL Server数据库日志(ldf文件)的几种方法 随着系统运行时间的推移,数据库日志文件会变得越来越大,这时我们需要对日志文件进行备份或清理。 1. 在SQL管理器分离数据库。 2. 对数据库日志文件进行压缩备份(rar, zip) 3. 直接删除ldf文件。 附加数据库文件成后,查阅本地

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

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

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

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

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

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

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

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

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

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

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

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

    2024年02月06日
    浏览(57)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包