原文网址:MySQL--binlog--介绍/用法_IT利刃出鞘的博客-CSDN博客

简介

本文介绍MySQL的binlog。

binlog是什么

  • binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。
  • binlog不会记录SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改,但你可以通过查询通用日志来查看MySQL执行过的所有语句。

binlog用途

三个用途,分别为恢复复制审计(出自《MySQL技术内幕 InnoDB存储引擎》)

  • 恢复(recovery):某些数据的恢复需要二进制日志,例如,在一个数据库全备文件恢复后,用户可以通过二进制日志进行point-iii-time的恢复。
  • 复制(replication):其原理与恢复类似,通过复制和执行二进制日志使一台远程的MySQL数据库(一般称为slave或standby)与一台MySQL数据库(一般称为master或primary)进行实时同步。
  • 审计(audit):用户可以通过二进制日志中的信息来进行审计,判断是否有对数据库进行注入的攻击。

binlog格式

格式

定义

优点

缺点

row

记录的是行数据的变更。(默认格式

非常清楚的记录每条数据详细的变更细节。

binlog日志会非常大,mysql主从同步时,会产生大量磁盘IO

statement

记录的是修改数据的sql

不需要记录每一行的变化,日志文件小,节约IO,可提高性能

准确性差,对一些系统函数不能准确复制或者不能复制,如now(),uuid()等

mixed

statement与row的结合:

一般的语句修改使用statement格式保存binlog,statement无法完成主从复制的操作(如一些函数),则采用row格式保存binlog。

row与statement的折中。

有可能发生主从不一致问题

业内目前推荐使用的是row模式,准确性高,虽然说文件大,但是现在有SSD和万兆光纤网络,这些磁盘IO和网络IO都是可以接受的。
        不推荐使用mixed模式,因为有可能主从不一致,如下:假设master有两条记录,而slave只有一条记录。

当在master上更新一条从库不存在的记录时,也就是id=2的记录,你会发现master是可以执行成功的。而slave拿到这个SQL后,也会照常执行,不报任何异常,只是更新操作不影响行数而已。并且你执行命令show slave status,查看输出,你会发现没有异常。但是,如果你是row模式,由于这行根本不存在,是会报1062错误的。

binlog命令

开启binlog的方法

法1:set logbin='on';

法2:修改配置文件

[mysqld]  # 这一行必须有,否则会出错
#log_bin
log-bin = mysql-bin #开启binlog
binlog-format = ROW #选择row模式
server_id = 12345 #配置mysql replication需要定义,不能和canal的slaveId重复

binlog相关命令

命令

作用

mysqlbinlog [options] log-files

查看binlog文件

show variables like 'binlog_format';

查看mysql的binlog模式

show variables like 'log_bin';

查看mysql是否开启binlog同步功能。默认是关闭的

show binary logs

获取binlog文件日志列表

show master status

查看当前正在写入的binlog文件

show master logs

查看master上的binlog文件

show binlog events

查看第一个binlog文件内容

show binlog events 'mysql-bin.000002'

查看指定binlog文件内容, 如:查看mysql-bin.000002文件内容

mysqlbinlog选项及含义

选项

含义

—help,-?

显示帮助消息并退出。

—database=db_name,-d db_name

只列出该数据库的条目(只用本地日志)。

-force-read,-f

使用该选项,如果mysqlbinlog读它不能识别的二进制日志事件,它会打印警告,忽略该事件并继续。没有该选项,如果mysqlbinlog读到此类事件则停止。

-hexdump,-H

在注释中显示日志的十六进制转储。该输出可以帮助复制过程中的调试。在MySQL 5.1.2中添加了该选项。

-host=host_name,-h host_name

获取给定主机上的MySQL服务器的二进制日志。

-local-load=path,-l path

为指定目录中的LOAD DATA INFILE预处理本地临时文件。

-offset=N,-o N

跳过前N个条目。

-password[=password],-p[password]

当连接服务器时使用的密码。如果使用短选项形式(-p),选项和 密码之间不能有空格。如果在命令行中-password或-p选项后面没有 密码值,则提示输入一个密码。

-port=port_num,-P port_num

用于连接远程服务器的TCP/IP端口号。

-position=N,-j N

不赞成使用,应使用-start-position。

-protocol={TCP | SOCKET | PIPE | -position

使用的连接协议。

-read-from-remote-server,-R

从MySQL服务器读二进制日志。如果未给出该选项,任何连接参数选项将被忽略。这些选项是-host、-password、-port、-protocol、-socket和-user。

-result-file=name, -r name

将输出指向给定的文件。

-short-form,-s

只显示日志中包含的语句,不显示其它信息。

-socket=path,-S path

用于连接的套接字文件。

-start-datetime=datetime

从二进制日志中第1个日期时间等于或晚于datetime参量的事件开始读取。datetime值相对于运行mysqlbinlog的机器上的本地时区。该值格式应符合DATETIME或TIMESTAMP数据类型。例如:shell> mysqlbinlog -start-datetime=”2004-12-25 11:25:56″ binlog.000003该选项可以帮助点对点恢复。

-stop-datetime=datetime

从二进制日志中第1个日期时间等于或晚于datetime参量的事件起停止读。关于datetime值的描述参见-start-datetime选项。该选项可以帮助及时恢复。

-start-position=N

从二进制日志中第1个位置等于N参量时的事件开始读。

-stop-position=N

从二进制日志中第1个位置等于和大于N参量时的事件起停止读。

-to-last-logs,-t

在MySQL服务器中请求的二进制日志的结尾处不停止,而是继续打印直到最后一个二进制日志的结尾。如果将输出发送给同一台MySQL服务器,会导致无限循环。该选项要求-read-from-remote-server。

-disable-logs-bin,-D

禁用二进制日志。如果使用-to-last-logs选项将输出发送给同一台MySQL服务器,可以避免无限循环。该选项在崩溃恢复时也很有用,可以避免复制已经记录的语句。注释:该选项要求有SUPER权限。

-user=user_name,-u user_name

连接远程服务器时使用的MySQL用户名。

-version,-V

显示版本信息并退出。还可以使用-var_name=value选项设置下面的变量:open_files_limit指定要保留的打开的文件描述符的数量。

其他网址

什么是 binlog_数据库_茅坤宝骏氹的博客-CSDN博客
mysqlbinlog用法详细说明_数据库_JBBOY的专栏-CSDN博客

MySQL--binlog--介绍/用法相关推荐

  1. MySQL Binlog 介绍

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

  2. MySQL Binlog 解析工具 Maxwell 详解

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

  3. MySQL Binlog三种格式介绍及分析

    一.Mysql Binlog格式介绍 Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在binlog ...

  4. mysql binlog update_mysql binlog 简单介绍与基于binlog数据恢复

    mysql binlog 简单介绍与基于binlog数据恢复 通过备份文件恢复 binlog(本节重点) binlog 二进制日志文件 show variables like 'log_bin'; 二 ...

  5. [转载]MySQL exists的用法介绍

    原文摘自:http://www.cnblogs.com/glory-jzx/archive/2012/07/19/2599215.html MySQL exists的用法介绍 有一个查询如下: 1 S ...

  6. Mysql Binlog三种格式详细介绍

    binlog 的不同模式有什么区别呢? 1.Statement:每一条会修改数据的sql都会记录在binlog中. 优点:不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能.(相比 ...

  7. mysql binlog mixed_MySQL Binlog三种格式介绍及分析

    MySQL  binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在binlog中. 优点:不需要记录每一行的变化, ...

  8. mysql回滚用法_Mysql误操作后利用binlog2sql快速回滚的方法详解

    前言 在日常工作或者学习中,操作数据库时候难免会因为"大意"而误操作,需要快速恢复的话通过备份来恢复是不太可能的,下面这篇文章主要给大家介绍关于Mysql误操作后利用binlog2 ...

  9. mysql binlog查看工具_【使用 Rust 写 Parser】4. 解析 binlog

    系列所有文章 PrivateRookie:[使用 Rust 写 Parser]1. 初识 nom​zhuanlan.zhihu.com PrivateRookie:[使用 Rust 写 Parser] ...

  10. 17.1 MySQL主从介绍 17.2 准备工作 17.3 配置主 17.4 配置从 17.5 测试主从同步

    2019独角兽企业重金招聘Python工程师标准>>> 第十七章 MySQL主从配置 17.1 MySQL主从介绍 MySQL主从又叫做Replication.AB复制.简单讲就是A ...

最新文章

  1. shell命令查阅端口信息_短小强大的8个Linux命令,分分钟帮你提高工作效率!
  2. 主成分分析(Principle Component Analysis)PCA的核心思想是什么?PCA算法的优缺点?增量PCA模型, 随机PCA, 模型、 核化PCA分别是什么?使用时如何选择?
  3. 基于linuxunix高性能web服务器架构思路分析
  4. 【 C 】KR C 与 ANSI C的区别(KR C,ANSI C,C89,C90,C99)(C11)
  5. 使用Git命令时出现fatal: this operation must be run in a work tree提示,该如何解决
  6. 学习笔记之Java程序设计实用教程
  7. Windows 下的批处理脚本基础——炫酷命令提示符窗口(让窗口变成你喜欢的样子)
  8. 127.0.0.1 myz.php,附录 – 1.0升级到2.0注意事项 - GatewayWorker 2.x 3.x 手册
  9. Caffe傻瓜系列(10):draw_net.py绘制caffe net结构
  10. linux7mysql集群_linux下mysql集群搭建
  11. BP神经网络设计方法
  12. 证监会行业分类代码对照表(2001+2012年)
  13. Java调用webservice
  14. 【托业】【新托业TOEIC新题型真题】学习笔记7-题库二-P1~4
  15. 解决resetFields报错 underfined
  16. C语言,枚举法求两个数的最大公约数
  17. 第二章:Java面向对象:抽象(abstract)类、模板方法设计模式、接口(interface)、关键字-implements(实现)、代理模式
  18. 前端人应该知道的 Centos/Docker/Nginx/Node/Jenkins 的基本操作
  19. VIN码识别-汽修行业新技术
  20. 正负数原码、反码、补码以及位运算

热门文章

  1. 常见的运营商网络安全问题
  2. 二维码生成器微信小程序源码
  3. 26 | Superscalar和VLIW:如何让CPU的吞吐率超过1?
  4. 2019杭电多校三 C. Yukikaze and Demons (点分治)
  5. Word文档标题自动增加序号
  6. 山西等保测评机构项目测评收费价格标准参考
  7. 【图像处理】PS曲线工具matlab实现 交互自定义灰度映射(Gray Level Transformation)附代码链接
  8. android隐藏其他应用图标,【Android】隐藏app图标以及隐式启动其他APP
  9. WIN10 修改用户下文件夹的名称
  10. voip 网络电话快速搭建