1、什么是binlog

binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录

默认情况下,binlog日志是二进制格式的,不能使用查看文本工具的命令(比如,cat,vi等)查看,而使用mysqlbinlog解析查看。

2.binlog的作用

当有数据写入到数据库时,还会同时把更新的SQL语句写入到对应的binlog文件里,这个文件就是上文说的binlog文件。使用mysqldump备份时,只是对一段时间的数据进行全备,但是如果备份后突然发现数据库服务器故障,这个时候就要用到binlog的日志了。

主要作用是用于数据库的主从复制及数据的增量恢复。

.啥是binlog? 记录数据库增删改,不记录查询的二进制日志.
.作用:用于数据恢复.

3、如何开启binlog日志功能

在mysql的配置文件my.cnf中,增加log_bin参数即可开启binlog日志,也可以通过赋值来指定binlog日志的文件名,实例如下:

[root@DB02 ~]# grep log_bin /etc/my.cnf
log_bin = /application/mysql/logs/dadong-bin
# log_bin
[root@DB02 ~]#
提示:也可以按“log_bin = /application/mysql/logs/dadong-bin”命名,目录要存在
为什么要刷新binlog?找到全备数据和binlog文件的恢复临界点.

4、 如何配置binlog

[root@db02 ~]# mkdir /application/mysql/logs
[root@db02 ~]# chown -R mysql.mysql /application/mysql/logs
开启binlog
编辑/etc/my.cnf
[mysqld]
log_bin = /application/mysql/logs/dadong-bin
重启:/etc/init.d/mysqld restart
[root@db02 ~]# ll /application/mysql/logs/
total
-rw-rw---- mysql mysql Jun : dadong-bin.
-rw-rw---- mysql mysql Jun : dadong-bin.index 如何刷新 每天晚上0点备份数据库
mysqldump -A -B -F >/opt/$(date +%F).sql
[root@db02 ~]# ll /application/mysql/logs/
-rw-rw---- mysql mysql Jun : dadong-bin.
-rw-rw---- mysql mysql Jun : dadong-bin.
-rw-rw---- mysql mysql Jun : dadong-bin.index
提示:每个库刷新一次.

5、mysql工具mysqlbinlog常用参数

mysqlbinlog命令常用参数

参数说明

-d ,--database=name

根据指定库拆分binlog(拆分单表binlog通过SQL关键字过滤

-r ,--result-file=name

指定解析binlog输出SQL语句的文件

-R,--read-from-remote-server

mysql服务器读取binlog日志,是下面参数的别名

-j,--start-position=#

读取binlog的起始位置点,#号是具体的位置点

--stop-position=#

读取binlog的停止位置点,#号是具体的位置点

--start-datetime=name

读取binlog的起始位置点,name具体的时间,格式为2004-12-25 11:25:26

--stop-datetime=name

读取binlog的停止位置点,name是具体的时间,格式为:2004-12-25 11:25:26

--base64-output=decode-rows

解析row级别binlog日志的方法例如:mysqlbinlog  --base64-output=decode-rows -v  mysqlbin.000016

例子:

例:mysqlbinlog -d dadong dadong-bin. dadong-bin. -r bin.log   ##利用mysqlbinlog解析binlog文件到bin.log中。
利用mysqlbinlog -d参数详解指定库的binlog日志
-d 指定解析dadong数据库,
-r 接卸成sql语句,指定生成的文件

mysqlbinlog可以指定-d实现分库导出binlog,如果使用-d参数,那更新数据时,必须有use库名,才能分出指定库的binlog,列如,写入数据库的语句必须采用下面写法:

use  daong;
insert into test values(,'dongdong')

6、获取binlog内容

6.1、按照位置截取binlog内容

按照位置截取binlog内容的优点是精确,但是要花费时间选择位置,例如:要截取dadong-bin.000009文件从位置365到位置465的日志,命令如下:

[root@DB02 ~]# mysqlbinlog dadong-bin. --start-position= --stop-position= -r pos.sql
提示:开始位置必须存在binlog里,结尾位置点可以不存在。
若指定了开始位置,不指定结束位置,则会截取开始处到结尾的binlog日志:
mysqlbinlog dadong-bin. --start-position= -r pos.sql
若指定了结束位置,不指定开始位置,则截取最开始到最后面的全部binlog日志:
mysqlbinlog dadong-bin. --stop-position= -r pos.sql
所谓的位置点,就是mysqlbinlog解析文件里的不同行行首的“#at 数字”标识的数据。

例子:

mysqlbinlog dadong-bin. --start-position= --stop-position= -r pos.sql

mysqlbinlog dadong-bin. --start-position= --stop-position= -r pos.sql
mysqlbinlog dadong-bin. --start-position= --stop-position= -r pos.sql
mysqlbinlog dadong-bin. --start-position= -r pos.sql
mysqlbinlog dadong-bin. --stop-position= -r pos.sql
截取部分binlog根据pos
mysqlbinlog dadong-bin. --start-position= --stop-position= -r pos.sql
mysqlbinlog dadong-bin. --start-position= -r pos.sql
mysqlbinlog dadong-bin. --stop-position= -r pos.sql 截取部分binlog根据时间
mysqlbinlog dadong-bin. --start-datetime='2014-10-16 17:14:15' --stop-datetime='2014-10-16 17:15:15' -r time.sql
mysqlbinlog dadong-bin. --start-datetime='2014-10-16 17:14:15' -r time.sql
mysqlbinlog dadong-bin. --stop-datetime='2014-10-16 17:15:15' -r time.sql

6.2、按时间位置截取binlog内容

通过时间参数截取部分binlog:--start-datetime=‘2017-10-16 17:14:25’ --stop-datetime=‘2017-10-16 17:18:30’

binlog介绍的更多相关文章

  1. [转帖]Mysql binlog 介绍

    binlog介绍   1.什么是binlog binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等 ...

  2. MySQL Binlog 介绍

    Binlog 简介 MySQL中一般有以下几种日志: 日志类型 写入日志的信息 错误日志 记录在启动,运行或停止mysqld时遇到的问题 通用查询日志 记录建立的客户端连接和执行的语句 二进制日志 记 ...

  3. MySQL的binlog数据如何查看

    binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格式 ...

  4. MySQL Binlog 解析工具 Maxwell 详解

    maxwell 简介 Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis.RabbitMQ.Redis.Goog ...

  5. 远程binlog

    binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格式 ...

  6. 查看MySQL日志数据binlog文件

    binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格式 ...

  7. Linux 上通过binlog文件 恢复mysql 数据库详细步骤

    一.binlog 介绍 服务器的二进制日志记录着该数据库的所有增删改的操作日志(前提是要在自己的服务器上开启binlog),还包括了这些操作的执行时间.为了显示这些二进制内容,我们可以使用mysqlb ...

  8. MySql Binlog 说明 & Canal 集成MySql的更新异常说明 & MySql Binlog 常用命令汇总

    文章来源于本人的印象笔记,如出现格式问题可访问该链接查看原文 原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 目录 背景介绍 开启MySq ...

  9. 使用Binlog日志恢复误删的MySQL数据

    解到: MySQL的binlog日志是什么?通常是用来干什么的? 模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据. 写这篇文章的初衷,是有一次我真的险些把测试数据库的一张表给删除了,当 ...

随机推荐

  1. 阿里云的云虚拟主机安装dede提示数据库连接失败的解决办法

    问题描述 阿里云的云虚拟主机安装dede提示数据库连接失败 问题分析 连接数据库失败,可能数据库密码不对或数据库服务器出错! 解决方案 1.通过ftp软件查看htdocs/data/common.in ...

  2. linux中如何对一个文件的内容进行处理,文件中每行有多个字段的值,中间用空格分隔开?

    需求描述: 今天在帮同事看个需求,将操作系统上的文件进行修改名字,改为特定的名字,所以呢,就先把这些原名字及对应的新名字关系放到了一个文本中,对于这个文本执行循环. 文件格式如下: .00000005 ...

  3. android studio 导入第三方库的记录

    android studio 导入第三方库的记录.jar包 和 库 一.jar包 1.jar包的话很简单,首先换成project模式,将你要用的jar包复制到lib下面.如图 2.然后右键选择Add ...

  4. Visual Assist X 10.8.2042的Crack破解补丁. 2014.06.25 (General release.)

    VA小组时隔一个月又公布了新的版本号,这个版本号新添加了5个特性,修复了7-8个bug.而且也是稳定的Release版.所以这是很推荐更新的一个版本号. 对于破解补丁还是老规矩,请到我的下载空间下载, ...

  5. C语言编程规范—命名规则

    C是一门朴素的语言,你使用的命名也应该这样.与Modula-2和Pascal程序员不同,C程序员不使用诸如“ThisVariableIsATemporaryCounter”这样“聪明”的名字.C程序员 ...

  6. MongoDB 数据管理

    MongoDB 相关操作: > db.version() // 查看 MongoDB 版本 > db.serverStatus() // 查看 MongoDB 服务器的状态 MongoDB ...

  7. Ubuntu图形界面和字符界面转换、指定默认启动界面

    1.按ALT+CTRL+F1.F2.F3.F4.F5.F6.F7可来回切换7个界面(Linux实体机)      其中ALT+CTRL+F7可切换到图形界面(Linux实体机)        如果是V ...

  8. redis 缓存类型为map

    // 获取分类列表,以及同类品牌 public Map<String, List> getCatalogInfo(Product product) { String key = Cache ...

  9. linux文件和目錄管理的基本命令命令

    ls命令 作用:顯示目標列表或目錄的內容 語法:ls[選項][目錄或文件] -a:顯示指定目錄下所有子目錄與文件,包括隱藏文件 -l:顯示文件的詳細信息 -d: 顯示目錄 例:ls -dl cd命令 ...

  10. 常见C语言编译错误解析【转】

    C语言编译错误信息及说明1. 在函数 ‘transform’ 中:7: 错误:expected ‘;’ before ‘{’ token    解释:‘{’之前的某个语句缺少分号‘;’: 2. 在函数 ...