MySQL二进制日志

MySQL的二进制日志记录数据库的更改,以SQL语句的形式保存,用于查看变更历史、增量备份、灾难恢复及复制。通过参数如`log-bin`、`max-binlog-size`等进行配置,`binlog-cache-size`优化高QPS场景,`sync-binlog`在复制环境中通常设为1以确保一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是二进制日志?
记录对数据库所发生的更改的日志。

  • 记录对数据发生或潜在发生更改的SQL语句。
  • 二进制格式保存
  • 用途广泛,包括:
    查看数据库变更历史
    数据库增量备份
    数据库灾难恢复
    MySQL复制

不重启修改二进制日志配置

  • SET @@global.log_bin=1
  • SET @@global.binlog_size=37268 (单位bytes)
  • 其他参数可以通过以下命令查询: SHOW VARIABLES LIKE '%bin%';
    在这里插入图片描述
    常用二进制日志相关参数
  • 修改以下配置后,需要重新启动数据库服务使之生效。
  • log-bin=
  • 开启并制定二进制日志保存路径及文件名。不设置则使用默认值。默认存放位置为数据库文件所在目录,名称为hostname-bin.xxx
  • max-binlog-size=500m
  • 设置单个二进制日志文件的最大值,默认1G,最大1G。
  • binlog-do-db与binlog-ignore-db
  • 指定二进制日志文件记录那些数据库操作。如果有多个数据库,以逗号分割配置。
  • binlog-cache-size=100m
  • 设置二进制日志缓存大小。 当数据库的qps(每秒请求数)达到上万次时,存储的io每秒就会达到上千次甚至上万次,一般的存储承受不了如此快的io,此时就需要开启缓存。
  • sync-binlog=N
  • 每隔N秒将缓存中的二进制记录写回硬盘。默认为0。不过,你经常会陷入group commit函数与I/O之间二选一的矛盾。如果在replication环境中,由于考虑到耐久性和一致性,则需要设置为1。同时,还需要设置innodb_flush_log_at_trx_commit=1以及innodb-support-xa=1(默认已开启)。

记录二进制日志的过程
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DataGiant

您的鼓励是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值