binlog介绍
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介绍的更多相关文章
- [转帖]Mysql binlog 介绍
binlog介绍 1.什么是binlog binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等 ...
- MySQL Binlog 介绍
Binlog 简介 MySQL中一般有以下几种日志: 日志类型 写入日志的信息 错误日志 记录在启动,运行或停止mysqld时遇到的问题 通用查询日志 记录建立的客户端连接和执行的语句 二进制日志 记 ...
- MySQL的binlog数据如何查看
binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格式 ...
- MySQL Binlog 解析工具 Maxwell 详解
maxwell 简介 Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis.RabbitMQ.Redis.Goog ...
- 远程binlog
binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格式 ...
- 查看MySQL日志数据binlog文件
binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格式 ...
- Linux 上通过binlog文件 恢复mysql 数据库详细步骤
一.binlog 介绍 服务器的二进制日志记录着该数据库的所有增删改的操作日志(前提是要在自己的服务器上开启binlog),还包括了这些操作的执行时间.为了显示这些二进制内容,我们可以使用mysqlb ...
- MySql Binlog 说明 & Canal 集成MySql的更新异常说明 & MySql Binlog 常用命令汇总
文章来源于本人的印象笔记,如出现格式问题可访问该链接查看原文 原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 目录 背景介绍 开启MySq ...
- 使用Binlog日志恢复误删的MySQL数据
解到: MySQL的binlog日志是什么?通常是用来干什么的? 模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据. 写这篇文章的初衷,是有一次我真的险些把测试数据库的一张表给删除了,当 ...
随机推荐
- Linux远程管理之SVN,VNC
一.远程管理的基本概念 首先我们来初略的讲讲远程管理的一些基本概念.对于我们使用的计算机来说,如果是个人计算机,就没有远程管理这一概念了,想用的时候开机就能使用,而对于我们的服务器来说,就不同了,对于 ...
- ubuntu下安装程序的五种方法
在ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种.下面针对每一种方法各举例来说明. 一.apt-get方法 使用a ...
- python装饰器、继承、元类、mixin,四种給类动态添加类属性和方法的方式(一)
介绍装饰器.继承.元类.mixin,四种給类动态添加类属性和方法的方式 有时候需要給类添加额外的东西,有些东西很频繁,每个类都需要,如果不想反复的复制粘贴到每个类,可以动态添加. # coding=u ...
- SpringBoot自动配置xxxAutoConfiguration 的使用
https://sdqali.in/blog/2016/07/16/controlling-redis-auto-configuration-for-spring-boot-session/ 常用的类 ...
- Tomcat------启动出错
描述:在cmd中,执行startup.bar时,报错:Using CLASSPATH: "E:\Tomcat\bin\bootstrap.jar;E:\Tomcat\bin\tomcat-j ...
- Websphere安装配置与项目部署
0x01 下载安装 1.在IBM官网下载安装包 打开下载地址,需注册账户,登录后,选择Windows 64-bit下载 2.解压缩,运行install.exe文件 3.输入刚才注册的用户名和密码,并输 ...
- solaris 下查看某程序所开端口
普通linux机器下可以用netstat -anp | grep pid即可. solaris下则不同,可以借助pfiles工具,pfiles $pid | grep sock pfiles | gr ...
- 邮件服务器日志:/var/log/maillog
/var/log/maillog会记录包含系统上运行的邮件服务器的日志信息,比如记录 postfix 或 sendmail 运行时的日志信息 [root@localhost ~]# tail /var ...
- 华为手机nova2s使用第三方字体库
准备好一个字体文件,例如mynew.tff 设置>显示>字体样式>最热,搜索免费,安装一款"兰亭黑体"字体(当然也可以购买) 可以在找到 文件管理>本地&g ...
- 关于 g++ 编译器
g++由自由软件基金发行,g++是基于类unix的c++编译器,通常在命令行运行.它一般附带于类Unix系统中,因此如果你正在运行Unix或Linux系统,它很可能已经存在于你的系统中.你可以对一个源 ...