mysql log-bin 分析_MySQL binlog相关分析

一、区别redolog和binlog

1、如下表格的一个简单对比

redolog

binlog

日志作用

保护脏数据

数据库备份恢复使用

引擎支持

只适合InnoDB引擎

所有引擎

日志格式

物理日志

逻辑日志,SQL语句

提交方式

快速提交

提交时一次性写入

保存形式

会被循环覆盖

长期保存

2、redolog记录的是对于每个页的修改

数据页地址、行地址、操作类型(I/D)、数据

e.g:一个update修改100行,至少产生200行redo日志,所以DML产生的redo可能很大:

100、2、D

100、2、I、'value'

……

实际就是update table set ……100(数据页地址) 2(行地址)

3、binlog只是记录DML、DDL、DCL,不记录SELECT

通过参数设置控制binlog的记录模式:

1、语句模式

e.g:delete from t1 where id<=1000;

2、行模式

delete from t1 where id=1;

delete from t1 where id=2;

……

delete from t1 where id=1000;

4、图解redolog、binlog机制

7c8761bf3029e8423cf8e5acfab33192.png

注意:

在oracle里面虽然redolog也是循环覆盖的,但是在循环覆盖之前,数据库会将redo拷贝出来做个归档,所以oracle里可以用redolog做数据恢复。

二、开启binlog及相关关注点

1、开启binlog

mysql> show variables like 'log_bin';+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| log_bin | OFF |  #默认是关闭的

+---------------+-------+

mysql> set @@global.log_bin=on;

ERROR1238 (HY000): Variable 'log_bin' is a read only variable

修改配置文件/etc/my.cnf,在[mysqld]下添加:

server-id=1log-bin=mysql-bin

重启MySQL,即可……binlog的启动大概会为mysql增加1%的负载,因此在绝大多数情况下,binlog都不会成为mysql的性能瓶颈,所以一般都是会开启binlog的。

2、binlog的存放<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值