LOG的含义 : Mysql 之 binlog介绍
1、什么是binlog
binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录。
默认情况下,binlog日志是二进制格式的,不能使用查看文本工具的命令(比如,cat,vi等)查看,而使用mysqlbinlog解析查看。
2.binlog的作用
当有数据写入到数据库时,还会同时把更新的SQL语句写入到对应的binlog文件里,这个文件就是上文说的binlog文件。使用mysqldump备份时,只是对一段时间的数据进行全备,但是如果备份后突然发现数据库服务器故障,这个时候就要用到binlog的日志了。
主要作用是用于数据库的主从复制及数据的增量恢复。
1.啥是binlog? 记录数据库增删改,不记录查询的二进制日志. 2.作用:用于数据恢复.
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 8
-rw-rw---- 1 mysql mysql 120 Jun 21 12:04 dadong-bin.000001
-rw-rw---- 1 mysql mysql 42 Jun 21 12:04 dadong-bin.index如何刷新每天晚上0点备份数据库
mysqldump -A -B -F >/opt/$(date +%F).sql
[root@db02 ~]# ll /application/mysql/logs/
-rw-rw---- 1 mysql mysql 168 Jun 21 12:06 dadong-bin.000001
-rw-rw---- 1 mysql mysql 168 Jun 21 12:06 dadong-bin.000002
-rw-rw---- 1 mysql mysql 210 Jun 21 12:07 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.000001 dadong-bin.000002 -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(1,'dongdong')
6、获取binlog内容
6.1、按照位置截取binlog内容
按照位置截取binlog内容的优点是精确,但是要花费时间选择位置,例如:要截取dadong-bin.000009文件从位置365到位置465的日志,命令如下:
[root@DB02 ~]# mysqlbinlog dadong-bin.000009 --start-position=365 --stop-position=465 -r pos.sql
提示:开始位置必须存在binlog里,结尾位置点可以不存在。
若指定了开始位置,不指定结束位置,则会截取开始处到结尾的binlog日志:
mysqlbinlog dadong-bin.000009 --start-position=365 -r pos.sql
若指定了结束位置,不指定开始位置,则截取最开始到最后面的全部binlog日志:
mysqlbinlog dadong-bin.000009 --stop-position=465 -r pos.sql
所谓的位置点,就是mysqlbinlog解析文件里的不同行行首的“#at 数字”标识的数据。
例子:
mysqlbinlog dadong-bin.000009 --start-position=365 --stop-position=456 -r pos.sqlmysqlbinlog dadong-bin.000005 --start-position=2265 --stop-position=2552 -r pos.sql
mysqlbinlog dadong-bin.000009 --start-position=365 --stop-position=456 -r pos.sql
mysqlbinlog dadong-bin.000009 --start-position=365 -r pos.sql
mysqlbinlog dadong-bin.000009 --stop-position=456 -r pos.sql
截取部分binlog根据pos
mysqlbinlog dadong-bin.000009 --start-position=365 --stop-position=456 -r pos.sql
mysqlbinlog dadong-bin.000009 --start-position=365 -r pos.sql
mysqlbinlog dadong-bin.000009 --stop-position=456 -r pos.sql截取部分binlog根据时间
mysqlbinlog dadong-bin.000009 --start-datetime='2014-10-16 17:14:15' --stop-datetime='2014-10-16 17:15:15' -r time.sql
mysqlbinlog dadong-bin.000009 --start-datetime='2014-10-16 17:14:15' -r time.sql
mysqlbinlog dadong-bin.000009 --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’
转 https://www.cnblogs.com/dadonggg/p/8617826.html
LOG的含义 : Mysql 之 binlog介绍相关推荐
- mysql slow log损坏_06 : mysql 的 binlog 日志 和slow慢日志 详解
mysql 的 binlog 日志 和slow慢日志 详解 mysql一般常用的日志有三种: 1:error错误日志 2: binlog日志 3:slow日志 下面将详细解释这三种日志: 1.错误日志 ...
- Mysql执行计划含义,mysql执行计划介绍
烂sql不仅直接影响sql的响应时间,更影响db的性能,导致其它正常的sql响应时间变长.如何写好sql,学会看执行计划至关重要.下面我简单讲讲mysql的执行计划,只列出了一些常见的情况,希望对大家 ...
- mysql之binlog日志
binlog日志(binary log) 1.开启mysql的binlog日志 1.1 查看binlog是否开启 mysql> show variables like '%log_bin%'; ...
- mysql的binlog开启方式,查看方式.三种binlog模式介绍.以及使用binlog恢复数据.删除binlog
判断MySQL是否已经开启binlog SHOW VARIABLES LIKE 'log_bin'; 查看MySQL的binlog模式 show global variables like " ...
- MySQL Binlog 介绍
Binlog 简介 MySQL中一般有以下几种日志: 日志类型 写入日志的信息 错误日志 记录在启动,运行或停止mysqld时遇到的问题 通用查询日志 记录建立的客户端连接和执行的语句 二进制日志 记 ...
- MySQL的binlog和redo log
目录 一.应用场景 二.binlog(归档日志) 三.redo log(重做日志) 四.binlog和redo log 五.为什么要引入redo log 六.update执行流程图 本篇文章是对林晓斌 ...
- mysql的binlog意义_带你解析MySQL binlog
前言: 我们都知道,binlog可以说是MySQL中比较重要的日志了,在日常学习及运维过程中,也经常会遇到.不清楚你对binlog了解多少呢?本篇文章将从binlog作用.binlog相关参数.解析b ...
- 手把手教你玩 MySQL 删库不跑路,直接把 MySQL 的 binlog 玩溜
我们常常听人说,只要你愿意,MySQL 可以恢复至半个月甚至一个月以内的任何一个状态.网上也有很多删库跑路的段子... 那么今天松哥想和大家来聊一聊 MySQL 中的 binlog,来手把手教大家如何 ...
- 阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅消费
背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝 ...
最新文章
- 不能上传图片和编辑内容很慢,望改进
- jQuery样式操作
- 【iOS数据持久化】数据库(SQLite.swift)和FMDB
- 使用RMAN VALIDATE验证数据和备份
- 工智能遇上银行反欺诈,到底能帮什么忙
- git之一: 在windows下安装git和使用总结
- 牛客小白月赛13-H(单调栈+树状数组)
- JDK可视化工具 | JConsole操作指南,手把手教会你
- 【转】浅论ViewState及其与Session的关系
- easyui tree复选框是否打钩状态_原创深度:如何利用OpenVINO工具套件监控机器操作员情绪状态(一)...
- java对象创建、对象内存布局、对象的访问定位、句柄池、直接指针
- mac卸载mysql
- 基于51单片机的交通灯控制设计
- 使用机器学习算法打造一个简单的“微博指数”
- react-native系列(24)API篇:屏幕宽高和屏幕像素密度
- Web前端 03 Html5(收官)
- 重读“发展Linux,中日两国之比较”有感
- 今日说“法”:FPGA芯片如何选型?
- STM32(1)跑马灯
- Leetcode 1024 - 视频拼接