binary log是mysql中一个重要的部分,主要作用有两个:

Replication:在master端开启binary log后,log会记录所有数据库的改动,然后slave端获取这个Log文件内容就可以在slave端进行同样的操作。

备份:在某个时间点a做了一次备份,然后利用binary

log记录从这个时间点a后的所有数据库的改动,然后下一次还原的时候,利用时间点a的备份文件和这个binary

log文件,就可以将数据还原。

与binary log相关的参数如下:

log-bin和log-bin_index:指定log文件和索引文件的位置。

max_binlog_size: binary log最大的大小

binlog_cache_size: 当前的多少事务cache在内存中

binlog_cache_disk_use:当前有多少事务暂存在磁盘上的,如果这个值有数值的话,就应该要注意调优了。

max_binlog_cache_size: 最大能有多少事务cache在内存中

binlog_do_db和binlog_ingore_db:是一对控制对哪些数据库进行收集的选项。

sync_binlog:这个值控制cache的数据commit多少次才刷到磁盘上。默认是0,也就是让数据库自己决定同步的频率。如设置成1的话,则每commit一次就会将cache的数据同步到磁盘上,这样做最安全,但是性能最差。

log的控制命令:

手工切换log: flush logs

1

2

3

4

5

查看log文件:show binary logs, show master logs

重置log: reset master

删除部分日志: purge binary logs to 'log_name'|'date'

自动删除过期的日志,通过设置expire_logs_days来控制删除几天前的日志

另外binlog_format有三个选项,分别是statement,row,mixed,来控制产生binary

log的格式。

对于产生的binary log可以通过mysqlbinlog命令来将log的信息打印出来。

mysql> show variables like

'%format%';

-------------------------- -------------------

|

Variable_name |

Value |

-------------------------- -------------------

|

binlog_format |

ROW |

[root@rhel131 tmp]# mysqlbinlog /tmp/1.000001

;

;

;

DELIMITER ;

# at 4

#131018 23:31:26 server id 1 end_log_pos 120 CRC32 0x67b9d21f Start: binlog v

4, server v 5.6.13-log created 131018 23:31:26 at startup

# Warning: this binlog is either in use or was not

closed properly.

ROLLBACK;

BINLOG '

TlRhUg8BAAAAdAAAAHgAAAABAAQANS42LjEzLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAABOVGFSEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAR/S

uWc=

';

DELIMITER ;

# End of log file

ROLLBACK ;

;

;

expire_logs_days该参数的理解

作者: 周博 日期:2011 年 11 月 15 日发表评论

用的mysql版本是percona的5.0.75今天发现之前10天得binlog依然保存,当天得binlog数据不足1000M,很奇怪为什么没有自动删除呢

expire_logs_days已经设置为2了。后来查了查文档,mysqld对于日志清理的操作是要log flushing

时候才会发生。但什么情况下才会触发log flushing呢有以下几种情况:

1 重启mysql

2 命令行输入

flush Logs

mysqladmin flush-logs,

mysqladmin refresh,

mysqldump –flush-logs,

mysqldump –master-data

3 满足max_binlog_size

当以上几个条件满足后会触发log

flushing操作,它会检查expire_logs_days这个动态参数(set global

expire_logs_days=1)

,对于不满足日志保留时间的会删除掉,并修改mysql-bin.index这个文件索引,关于这个保留时间可以强调一下,他保留的日志是当前天

expire_logs_days=N,简单点说也就是今天如果是15号,expire_logs_days设置为1,那么binlog保留的就是14号以及15号的日志。

产生的问题:针对这种原理的话就会有可能产生我目前遇到的情况,也就是如下图11-4号和11-15号的binlog并存,因为15号的binlog并没有到达max_binlog_size的上限所以没有触发log

flushing,所以只要手动运行flush logs就可以了,或者等到15号的日志到达上限设置的时候自动触发log

flushing.

-rw-rw---- 1 mysql mysql 591 Nov 4 10:28

a01-vimg-test-youku.000004-rw-rw---- 1 mysql mysql 1073741914 Nov 4

11:23 a01-vimg-test-youku.000005-rw-rw---- 1 mysql mysql 1073742237

Nov 4 11:30 a01-vimg-test-youku.000006-rw-rw---- 1 mysql mysql

1073742213 Nov 4 11:38 a01-vimg-test-youku.000007-rw-rw---- 1 mysql

mysql 1073742085 Nov 4 11:45

a01-vimg-test-youku.000008........-rw-rw---- 1 mysql mysql

1073741936 Nov 4 17:28 a01-vimg-test-youku.000050-rw-rw---- 1 mysql

mysql 950199177 Nov 15 10:20 a01-vimg-test-youku.000051$ mysql -e

"show variables like 'expire_logs_days';" ------------------

------- | Variable_name | Value | ------------------ ------- |

expire_logs_days | 2 | ------------------ ------- $ mysql -e "show

variables like 'max_binlog_size';" ----------------- ------------ |

Variable_name | Value | ----------------- ------------ |

max_binlog_size | 1073741824 | ----------------- ------------

mysql bing logo_mysqlbing log相关推荐

  1. 关于mysql的ddl_log.log文件

    今天在mysql数据库的data目录下发现了这样的一个log文件 ddl_log.log 于是官网查看了一下,英文好的可以自己阅读一下,不好的就麻烦了:( The DDL Log The DDL lo ...

  2. MySQL日志(undo log 和 redo log 实现事务的原子性/持久性/一致性)

    日志的重要性 日志绝对是数据库的核心.   持久化的日志记录了各种重要的信息. 数据的恢复需要依赖日志.  慢查询sql语句需要用到慢查询日志.以及错误日志中保存着mysqld数据库服务端在启动过程中 ...

  3. mysql error log清理_手动删除mysql日志/var/log/mysql/error.log导致的mysql无法启动

    问题环境 ubuntu-mate for raspberry mysql默认配置 问题起源 最近在搞fail2ban这东西,顺便翻了翻各种日志,然后看见mysql的日志有点多就想清理一下,于是直接su ...

  4. mySQL Slow Query Log Rotation(慢查询日志轮循设置)

    要分析公司网站MYSQL性能,常规MY.CNF调优是一方面,慢查日志分析也重要. 但现在日志太大了,作一个每天自动切割的任务.将脚本放在/etc/logrotate.d/. 如何分析导出日志,以后再写 ...

  5. 解决Mysql复制Relay log read failure 的问题

    一.问题描述 Mysql主从复制模式中,slave上报错 "relay log read failure",导致主从同步停止. mysql> show slave statu ...

  6. mysql 查询slow log状态,MySQL开启慢查询日志log-slow-queries的方法

    一个普通WEB站点的页面常常需要查询N条SQL语句后才能得出页面结果,当网站访问速度慢而前端做了大量优化工作以后,数据库瓶颈的查找也是WEB优化的一个重要部分. MySQL中提供了一个慢查询的日志记录 ...

  7. mysql根据bin log恢复_MySQL 通过 binlog 恢复数据

    目的 通过了解 binlog 日志的相关配置,简单掌握通过 binlog 对数据库进行数据恢复操作: mysql 日志文件 任何成熟软件都会有一套成熟的日志系统,当软件出现问题时,这些日志就是查询问题 ...

  8. 【MySQL】redo log --- 刷入磁盘过程

    1.redo log基本概念 redo log的相关概念这里就不再过多阐述,网上有非常多的好的资料,可以看下缥缈大神的文章:https://www.cnblogs.com/cuisi/p/652507 ...

  9. mysql log_来吧,了解下mysql有哪些log

    概述 mysql里面有很多log,比如用于主从同步的bin_log,防止数据丢失的redo_log,慢查询日志slow_log等等 redo log InnoDB有buffer pool(简称bp). ...

  10. mysql之 slow log 慢查询日志

    一. 相关参数: • slow_query_log  ◦ 是否开启慢查询日志 • slow_query_log_file  ◦ 慢查询日志文件名, 在 my.cnf 我们已经定义为slow.log,默 ...

最新文章

  1. 仿iOS中图标的抖动
  2. JS 画饼图,折线图
  3. Python学习笔记(序列和元组)
  4. 加加速度matlab,关于加加速度的若干机械运动分析及MATLAB模拟
  5. Spring集成activeMQ
  6. 【POJ3608】Bridge Across Islands(旋转卡壳求两凸多边形的最短间距)
  7. C++打印ASCLL码表
  8. 永中集成Office要敢于继续挑战微软Office
  9. Tomcat日志配置,可结合log4j
  10. 运维这个工作岗位还有前途吗?
  11. PHP利用JWT实现token和refresh_token
  12. CSR8311/CSR8811 HCI vendor command说明
  13. OS X 修改网卡 Mac 地址的方法
  14. 中国176个AAAAA级景区,存起来吧!下一站你去哪里?
  15. 羊皮卷之七-我要笑遍世界(中英对照)
  16. 2022年腾讯课堂现在用m3u8下载不了,怎么办
  17. HTML制作手风琴效果,纯js+html和纯css+html制作手风琴效果,css手风琴
  18. 经验之谈:9大技巧快速提升自己的平面设计思维能力
  19. http://nianjian.xiaze.com/tags.php?/%E6%BD%BC%E5%85%B3%E5%B9%B4%E9%89%B4/1/13595315666/
  20. 什么是浏览器隐私模式?浏览器隐私模式是否安全?

热门文章

  1. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-4.在线教育后台数据库设计...
  2. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第1节 基本概念_02maven依赖管理的概念
  3. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_14_常用的函数式接口_Predicate接口中的默认方法or和negate...
  4. oracle连接多个扫描
  5. Docker生产环境配置——设置direct-lvm模式
  6. T-SQL 之 DDL语法
  7. Unity3D ----- 制作信息滚动提示(NGUI)
  8. mysql 中时间和日期函数应用
  9. linux的sudo apt-get install 和dpkg -i package.deb命令
  10. Android -- Layout布局文件里的android:layout_height等属性为什么会不起作用?