binlog

binlog基本定义:二进制日志,也成为二进制日志,记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存在磁盘中;

作用:MySQL的作用类似于Oracle的归档日志,可以用来查看数据库的变更历史(具体的时间点所有的SQL操作)、数据库增量备份和恢复(增量备份和基于时间点的恢复)、Mysql的复制(主主数据库的复制、主从数据库的复制)

二进制日志的信息:

文件位置:默认存放位置为数据库文件所在目录下

文件的命名方式: 名称为hostname-bin.xxxxx (重启mysql一次将会自动生成一个新的binlog)

状态的查看:mysql> show variables like ‘%log_bin%‘;

mysql> show variables like ‘%log_bin%‘;

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

| Variable_name | Value |

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

| log_bin | ON | //表示当前已开启二进制日志//

| log_bin_trust_function_creators | OFF |

| sql_log_bin | ON |

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

3 rows in set (0.00 sec)

二进制日志的管理:

1、开启二进制日志配置

方法一、修改my.cnf参数文件,该方法需要重启

log-bin = mysql-bin #打开日志(主机需要打开),这个mysql-bin也可以自定义,这里也可以加上路径,如:/home/www/mysql_bin_log/mysql-bin

关闭二进制日志的方法:log-bin = mysql-bin注释掉即可

方法二、不重启修改二进制日志配置,该方法mysql的版本需要5.6以上

SET @@global.log_bin=1|0  (1为开启,0为关闭)

SET @@global.binlog_size=37268(单位bytes)

3、暂停二进制日志

SET sql_log_bin={0|1}

4、修改二进制日志的大小

修改my.cnf参数文件中的max_binlog_size的值;

说明:如果你的二进制文件的大小超过了max_binlog_size,它就是自动创建新的二进制文件。当然如果恰好在日志文件到达它的最大尺寸时写入了大的事务,那么日志文件还是会超过max_binlog_size的大小

5、进行二进制日志的切换,默认情况下当二进制日志写满了或者数据库重启了才会进行切换,但是也可以手工的进行切换的动作

mysql> flush logs;

6、其他参数:

binlog-cache-size=100m 设置二进制日志缓存大小

sync-binlog=N(每个N秒将缓存中的二进制日志记录写回硬盘,默认值为0。不过,你经常会陷入group commit函数与I/O之间二选一的矛盾。如果在replication环境中,由于考虑到耐久性与一致性,则需要设置1。同时,还需要设置innodb_flush_log_at_trx_commit=1以及innodb-support-xa=1默认开启;)

二进制日志的写入过程

查看二进制日志的内容:

binlog不能直接用文本的方式打开,mysql提供了相应的查看工具:mysqlbinlog,直接查看单个二进制日志文件:mysqlbinlog    filename

例如: mysqlbinlog /data/mysql/mysql-bin.000001

当然也可以通过二进制日志完成数据库的恢复,具体的使用将在数据库的备份还原中介绍。

删除二进制日志

二进制日志会不断的增长,并产生多个文件。因此,需要制定备份计划和管理策略.无用的二进制日志要记得及时删除。

删除慢查询日志有三种方法:

1、操作系统命令直接删除

2、reset master

3、PURGE BINARY LOGS BEFORE ‘2014-07-09 12:40:26′;

总结:二进制日志用途广泛也很重要,大多少情况下会开启,对于业务操作频繁的数据库需要制定相应的备份策略和删除策略;

时间: 2024-10-10 12:05:06

binlog的相关文章

MySQL binlog日志恢复数据

我们了解了MySQL 的 binlog 日志的开启方式以及 binlog 日志的一些原理和常用操作,我们知道,binlog 有两大作用,一个是使用 binlog 恢复数据,另一个就是用来做主从复制.本篇笔记就是来记录如何使用 binlog 日志来做数据恢复.当然了,使用 binlog 日志所恢复的数据只能是部分数据,并不能够使用 binlog 日志来做数据库的备份,如果想要做数据库备份,依然要使用我们传统的备份方法,而 binlog 可以作为增量备份. 视频链接:http://www.ronco

查看binlog文件的2种方式

1.使用show binlog events a.获取binlog文件列表 mysql> show binary logs; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000005 | 1288 | | mysql-bin.000006 | 120 | +------------------+-----------+ mysql>

Binlog的三种模式

binlog模式分三种(row,statement,mixed) 1.Row 日志中会记录成每一行数据被修改的形式,然后在slave端再对相同的数据进行修改,只记录要修改的数据,只有value,不会有sql多表关联的情况. 优点:在row模式下,bin-log中可以不记录执行的sql语句的上下文相关的信息,仅仅只需要记录那一条记录被修改了,修改成什么样了,所以row的日志内容会非常清楚的记录下每一行数据修改的细节,非常容易理解.而且不会出现某些特定情况下的存储过程和function,以及trig

Python 查找binlog文件

经常需要在 binlog 中查找一些日志信息,于是写了一个简单的脚本.对于非常巨大的 binlog 文件,该脚本可能会速度慢,毕竟还是用的 list,暂时没想到好办法. 详细看代码: #/usr/bin/python #2016-04-12 #search string in the binlogs #usage: #put this file into binlog-dir,exec as: #"python test.py 111 123 update" or #"pyt

MySQL之truncate表后恢复思路整理(前提是有备份且开启binlog)

1.1对数据库thunder进行备份 mysqldump -S /tmp/mysql3316.sock  --single-transaction --master-data=2 thunder >thunder_full_2015112.sql 1.2进行truncate table操作并insert into table (work)[email protected]:mysql3316.sock [(none)]>select * from thunder.tb1; +----+----

mysql binlog row格式查看

MySQL 5.1开始,binlog支持row-based的格式,默认情况下只能看到一些经过base-64编码的信息,如 DELIMITER /*!*/; # at 7493962 #090827 5:25:03 server id 1 end_log_pos 0 Start: binlog v 4, server v 5.1.26-rc-community-log created 090827 5:25:03 BINLOG ' L6iVSg8BAAAAZgAAAAAAAAAAAAQANS4xL

Windows下Mysql 5.7.19 开启bin-log以及mysql配置

一.配置环境: OS:Win10 Mysql:5.7.19 二.我的Mysql配置文件(my.ini)如下: [client] port=3306 default-character-set=utf8 [mysqld]  #Path to install software directory  basedir=E:\mysql-5.7.19 #Path to the database directory datadir=G:\mysql_data #Port Number port=3306 #

Mysql binlog 详细解读

Mysql的binlog主要用于逻辑同步以及二阶段提交的安全性保证,而在平时的使用中我们DBA也会从中获取一些重要的信息,比如说主从同步延迟了我们可以通过binlog查看当前事务执行的内容,比如可以利用binlog+备份的方式进行误删回滚,开源工具中也有很多利用binlog做闪回.同步数据到缓存中的方案,异地多活的高可用框架完成后有点空闲就对binlog的组成深入了解了下(基于mysql5.7版本,binlog版本v4),mysql 5.0之后binlog都采用的v4版本,结构如下分为heade

MySQL binlog相关分析

1.redolog.binlog的简单分析 图解:redolog和binlog机制 2.开启binlog及关注点 3.关注binlog的相关参数 4.binlog模式分析 5.关于binlog的使用 补充:双一模式 一.区别redolog和binlog 1.如下表格的一个简单对比   redolog binlog 日志作用 保护脏数据 数据库备份恢复使用 引擎支持 只适合InnoDB引擎 所有引擎 日志格式 物理日志 逻辑日志,SQL语句 提交方式 快速提交 提交时一次性写入 保存形式 会被循环

0816关于MySQL的审计 init-connect+binlog实现用户操作追踪

转自:http://blog.sina.com.cn/s/blog_605f5b4f01013xkv.html mysql 用init-connect+binlog实现用户操作追踪 做access 的ip的log 记录 在MYSQL中,每个连接都会先执行init-connect,进行连接的初始化.我们可以在这里获取用户的登录名称和thread的ID值.然后配合binlog,就可以追踪到每个操作语句的操作时间,操作人等.实现审计. 实验过程:1:创建登录日志库,登录日志表 CREATE DATAB