而mysql 二进制日志 点_浅谈MySQL二进制日志

一、二进制日志及其作用

7ca6da8aa0382ecff4fe6ae425b7eb8d.png

定义:

MySQL的二进制日志记录的是所有使mysql数据库的数据发生变更的操作信息(事件),即记录用户对数据库执行更改的所有sql语句。

1、数据库的复制

配置了主从复制的时候,主服务器(Master)会将其产生的二进制日志发送到从服务器(Slave),从服务器会利用这个二进制日志的信息在本地重做,实现主从同步。

2、数据库的恢复

MySQL可以在全备和差异备份的基础上,利用二进制日志进行基于时间点或者事物Id的恢复操作,原理等同于主从复制的日志重做。

3、分析数据库发生的变更(审计)

基于二进制日志本身的特征,即记录数据库发生变更的操作,从而可以通过分析特定时间段的二进制日志,来分析某一时间内对数据库的操作,或者查询一些变更发生的时间,判断是否有对数据库进行注入的攻击。

二、二进制日志的配置

在MySQL配置文件my.cnf中[mysqld] 选项处添加二进制日志的配置参数:

log-bin=mysql-bin

重启MySQL服务生效,注意该变量是只读的,不能动态修改。

log_bin是生成的bin-log的文件名,未指定位置,默认为MySQL数据目录,文件后缀则是6位数字的编码,从000001开始。按照上面的配置,生成的文件为: mysql_bin.000001、mysql_bin.000002……

三、二进制日志相关的变量

1、常用binlog相关变量

查看部分二进制日志相关变量的命令:

show global variables like ‘%binlog%’;

max_binlog_size:单个二进制日志文件的最大值,如果超过该值,则生成一个新的二进制日志文件,后缀名加1,并记录到.index文件。

binlog_cache_size:二进制日志缓存大小,当使用事务的表存储引擎(如InnoDB)时,所有未提交的二进制日志会提交到一个缓存中,当该事务提交时,直接将缓存中的二进制日志写入到二进制日志文件,需要主要的是该变量是基于会话(session)的,所有该值的设置需要谨慎。可以通过show global status命令查看binlog_cache_use、binlog_cache_disk_use的状态,来判断当前binlog_cache_size的设置是否合适,其中binlog_cache_use记录了使用缓存写入二进制日志的次数,binlog_cache_disk_use记录了使用临时文件写入二进制日志的次数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值