首页
学习
活动
专区
圈层
工具
发布

mysqlbinlog浅析

mysqlbinlog浅析 1mysql二进制日志 在mysql中,当我们开启了二进制日志,任意时间对数据库所做的更改,都会被记录到日志文件中,例如当我们添加了一个表或者update了一条数据...,这些时间都会被存储到mysqlbinlog中,之前对于二进制文件的理解不够透彻,今天在线上处理一个问题的时候,重新对二进制日志有了更加深刻的认知。...今天线上的问题是这样的,业务方的一个同学说某个服务的业务操作结果有些出入,存在一些未知的表数据变更,想要DBA帮忙查找到底是什么时候发生的数据变更,目前知道的结果只有大概的时间以及数据库名称和服务IP地址...而且由于binlog比较大,大概1G左右,在binlog文件当中搜索某个关键字的速度相当慢,等待了一会儿,实在是无法忍受这种速度了,于是mysqlbinlog --help了一下,看到了很多有用的参数,...看到了--start-datetime这个参数,于是改变了相关的思路,利用时间范围先将特定的二进制日志记录打印出来: mysqlbinlog -vv --start-datetime='2019-02-

1.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysqlbinlog命令详解 Part 2 - MySQL 事件类型

    这个专题的内容为mysqlbinlog命令的详解 mysqlbinlog是MySQL中用来处理binlog的工具 为了更好的讲解后面的内容,这节先说下MySQL常用的一些事件类型 1....这个事件不应该发生,他永远不会被写入日志文件中 如果日志文件中的事件无法被识别为其他的事件,则被看成是UNKNOWN_EVENT START_EVENT_V3 该事件是写在每个二进制文件开头的一个描述性的事件...2、在statement格式中,具体执行的SQL语句会保存在该事件中。 3、对于ROW格式的binlog,所有DDL操作以文本的形式记录在该事件中。...,MySQL 5.0之前使用的是START_EVENT_V3事件 XID_EVENT 在使用了事务后写入该事件 TABLE_MAP_EVENT 基于行的日志记录生效,该事件在每个行事件之前, 将表的定义映射成一个数字...,基于行的日志记录时生效 UPDATE_ROWS_EVENT 对单张表进行更新时写入,基于行的日志记录时生效 DELETE_ROWS_EVENT 对单张表进行删除时写入,基于行的日志记录时生效 INCIDENT_EVENT

    1.3K20

    mysqlbinlog命令详解 Part 10 恢复MySQL

    实验环境 此次实验的环境如下 MySQL 5.7.25 Redhat 6.10 binlog模式采用row模式 前面的一些章节我们对mysqldump常用命令进行了讲解 这个专题的内容为mysqlbinlog...命令的详解 mysqlbinlog是MySQL中用来处理binlog的工具 上节的内容为新建一个备份策略 这节内容讲如何使用mysqldump恢复MySQL 1....MASTER TO MASTER_LOG_FILE='masterbin.000001,MASTER_LOG_POS=100; 之后针对该二进制文件进行基于位置点的恢复 mysqlbinlog...,则可利用其进行恢复 假设周五零点到九点的二进制文件为mysql-bin.000006 mysql-bin.000007 则可以使用如下命令 shell> mysqlbinlog mysql-bin.000006...我们假设一个drop表的操作发生在master-bin.000007的位置100处 我们可以使用下面语句 mysqlbinlog --stop-position=100 /path/to/log

    1.4K10

    mysqlbinlog命令详解 Part 8 指定 Server ID

    实验环境 此次实验的环境如下 MySQL 5.7.25 Redhat 6.10 binlog模式采用row模式 前面的一些章节我们对mysqldump常用命令进行了讲解 这个专题的内容为mysqlbinlog...命令的详解 mysqlbinlog是MySQL中用来处理binlog的工具 这节内容讲mysqlbinlog 如何指定server id 1....概念介绍 上节我们说到如何备份二进制文件时说到通过--read-from-remote-server 连接数据库, 连接的话会使用server id 唯一标识该客户端,默认为65535 如果有多个mysqlbinlog...read-from-remote-server 和 --stop-never参数时,server id默认值为65635,根据需要使用--stop-never-slave-server-id参数指定 mysqlbinlog...参考链接 https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog-server-id.html 好了 今天的内容就说到这里,下节再见

    1.9K20

    mysqlbinlog命令详解 Part 9 MySQL备份策略

    前情提要 实验环境 此次实验的环境如下 MySQL 5.7.25 Redhat 6.10 binlog模式采用row模式 前面的一些章节我们对mysqldump常用命令进行了讲解 这个专题的内容为mysqlbinlog...命令的详解 mysqlbinlog是MySQL中用来处理binlog的工具 这节内容讲使用mysqldump备份MySQL 下节使用mysqlbinlog 恢复MySQL 1....backup_sunday_0_AM.sql 上述命令备份了所有的数据库,包括触发器,存储过程等 这里可以加上--flush-logs强制刷新日志 1.2 增量备份 其次我们除了周日,每日零点对数据库进行增量备份 采用的方法是进行二进制日志的备份...备份前刷新下日志 也可直接拷贝 具体介绍请看上期内容 mysqladmin -S /data/mysql/data/mysql.sock -usystem -ppassword flush-logs mysqlbinlog...参考链接 https://dev.mysql.com/doc/refman/5.7/en/backup-and-recovery.html 好了 今天的内容就说到这里,下节再见

    1.4K41

    mysqlbinlog命令详解 Part 11 其他的一些参数

    实验环境 此次实验的环境如下 MySQL 5.7.25 Redhat 6.10 binlog模式采用row模式 前面的一些章节我们对mysqldump常用命令进行了讲解 这个专题的内容为mysqlbinlog...命令的详解 mysqlbinlog是MySQL中用来处理binlog的工具 这节的内容为mysqlbinlog的一些其他的参数 这里也并非介绍了所有的参数,只是列举了其中的一些 所有参数参看参考链接 1...--database 指定该参数时表示只列出该数据库的信息 mysqlbinlog -v --database=test /path/to/log/master-bin.000001 ?...--disable-log-bin 在使用mysqlbinlog恢复时不写binlog 日志,这样可以增加恢复速度 mysqlbinlog --start-datetime="2019-04-16 08...参考链接 https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html 好了 今天的内容就说到这里,下节再见

    1K10

    mysqlbinlog命令详解MySQL 5.7 常用命令

    Windows 管理员权限 net start mysql net stop mysql 无需管理员权限 mysqladmin -uroot -p shutdown 1.2 Linux Linux版本的安装后续讲解...新建数据库及用户 如下语句新建test数据库,使用默认的字符集 并建立user1账户,赋予其test数据库的所有权限 %代表所有客户端都可登录 PS:MySQL的账号是 用户名和登录权限的结合,二者在一起构成一个账号...表的相关操作 mysql -uuser1 -p123456 -h 127.0.0.1 mysql>use test CREATE TABLE IF NOT EXISTS `test`( `test_id...变量的查询 5.1 系统变量的查询 查询会话变量 可通过指定 session 查询会话变量 不加的话默认是会话变量 使用%匹配所有字符 mysql> show variables like '%read_only...修改系统变量 6.1 全局变量 修改全局变量影响后续新连接的会话 并不会影响当前会话 数据库重新后失效,如果需要永久保持,请写入配置文件中 set global character_set_client

    1.3K30

    链式操作的用法reject的用法catch的用法all的用法race的用法

    链式操作的用法 所以,从表面上看,Promise只是能够简化层层回调的写法,而实质上,Promise的精髓是“状态”,用维护状态、传递状态的方式来使得回调函数能够及时调用,它比传递callback函数要简单...reject的用法 到这里,你应该对“Promise是什么玩意”有了最基本的了解。那么我们接着来看看ES6的Promise还有哪些功能。我们光用了resolve,还没用reject呢,它是做什么的呢?...catch的用法 我们知道Promise对象除了then方法,还有一个catch方法,它是做什么用的呢?...all的用法 Promise的all方法提供了并行执行异步操作的能力,并且在所有异步操作执行完后才执行回调。...race的用法 all方法的效果实际上是「谁跑的慢,以谁为准执行回调」,那么相对的就有另一个方法「谁跑的快,以谁为准执行回调」,这就是race方法,这个词本来就是赛跑的意思。

    5.4K20

    “mysqlbinlog”工具做binlog server靠谱吗?

    玩过binlog server的同学都知道,它使用mysqlbinlog命令以daemon进程的方式模拟一个slave的IO线程与主库连接,可以很方便地即时同步主库的binlog,以便弥补定时备份策略中最近一次备份到下一次备份完成之前这段时间内的数据容易丢失的问题...rollback语句只要调用mysqlbinlog命令结束都会加上的,要注意,这个rollback语句是你用于解析这个binlog文件的那一个mysqlbinlog进程加上的,跟binlog server...的那一个mysqlbinlog没关系,binlog server的那一个mysqlbinlog进程还仍然再运行中,还卡在最后一个commit未落盘这里) mysqlbinlog不使用–raw选项时,mysqlbinlog...,所以不使用–raw选项时就会有commit语句,而缺失这个rollback语句是因为转储binlog的mysqlbinlog进程仍然在继续运行,只有在mysqlbinlog结束的时候才会加上rollback...那为什么使用–raw模式的时候mysqlbinlog也在运行,解析出来的binlog文件就有rollback语句呢?还记得是另外调用了一个mysqlbinlog命令来解析的吗?

    4.4K80

    mysqlbinlog命令详解 Part 2 -MySQL 事件类型

    此次实验的环境如下 MySQL 5.7.25 Redhat 6.10 binlog模式采用row模式 这个专题的内容为mysqlbinlog命令的详解 mysqlbinlog是MySQL中用来处理binlog...的工具 为了更好的讲解后面的内容,这节先说下MySQL常用的一些事件类型 1....常见事件意义 这节介绍一些常见的事件的意义 全部内容请参见官方文档 Event Meanings UNKNOWN_EVENT 这个事件不应该发生,他永远不会被写入日志文件中 如果日志文件中的事件无法被识别为其他的事件...2、在statement格式中,具体执行的SQL语句会保存在该事件中。 3、对于ROW格式的binlog,所有DDL操作以文本的形式记录在该事件中。...,MySQL 5.0之前使用的是START_EVENT_V3事件 XID_EVENT 在使用了事务后写入该事件 TABLE_MAP_EVENT 基于行的日志记录生效,该事件在每个行事件之前, 将表的定义映射成一个数字

    1.3K20
    领券