mysql binlog使用_mysql binlog 基本使用
先查看下数据库 binlog 的状态
show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | OFF |
+---------------+-------+
如果关闭状态的话,需求配置下开启,修改 [windows]my.ini/[linux]my.cnf 文件,linux 下 /etc/my.cnf,在 [mysqld] 下添加 log-bin=[日志名]
log-bin=mysql-bin
重启 mysql,在 centos 下安装的是 mariadb,所以重启:
systemctl mariadb.service restart
然后查看状态,就是 log_bin=on 了。
一次执行一些数据库的操作测试下:
MariaDB [binlog]> create table test( id int auto_increment not null primary key, val int, data varchar(20));
Query OK, 0 rows affected (0.00 sec)
MariaDB [binlog]> insert into test(val, data) values (10, 'wu');
Query OK, 1 row affected (0.01 sec)
MariaDB [binlog]> insert into test(val, data) values (20, 'yang');
Query OK, 1 row affected (0.00 sec)
MariaDB [binlog]> flush logs;
Query OK, 0 rows affected (0.20 sec)
MariaDB [binlog]> insert into test(val, data) values (20, 'ping');
Query OK, 1 row affected (0.01 sec)
MariaDB [binlog]> insert into test(val, data) values (20, 'pinlogng');
Query OK, 1 row affected (0.00 sec)
MariaDB [binlog]> delete from test where id between 4 and 5;
Query OK, 1 row affected (0.00 sec)
MariaDB [binlog]> flush logs;
Query OK, 0 rows affected (0.02 sec)
以下是第一次 flush 之前,和之后的变化
# flush 之前
-rw-rw---- 1 mysql mysql 958 11月 17 10:31 mysql-bin.000001
-rw-rw---- 1 mysql mysql 19 11月 17 10:25 mysql-bin.index
#flush 之后
-rw-rw---- 1 mysql mysql 1001 11月 17 10:32 mysql-bin.000001
-rw-rw---- 1 mysql mysql 245 11月 17 10:32 mysql-bin.000002
-rw-rw---- 1 mysql mysql 38 11月 17 10:32 mysql-bin.index
.index 是索引文件,其他三个是 binlog 文件,我们可以用 [mysqlbinlog] 工具来恢复数据。为了下面讲解的方便,我们先将 binlog 文件解析成 txt 文件,如下:
mysqlbinlog data\mysql-bin.000001 > ./1.txtmysqlbinlog data\mysql-bin.000002 > ./2.txtmysqlbinlog data\mysql-bin.000003 > ./3.txt
重复第一个 log 文件的操作
mysqlbinlog data\mysql-bin.000001 | mysql -uroot -p123456
在第二个 binlog 里面我们进行了 delete 操作,我们并不想将 delete 的操作恢复到数据库,这样我们可以通过读取 2.txt 文件:
................................/*!*/;# at 653#140902 16:07:43 server id 1 end_log_pos 759 Query thread_id=1 exec_time=0 error_code=0SET TIMESTAMP=1409645263/*!*/;delete from test where id between 4 and 5/*!*/;# at 759#140902 16:07:43 server id 1 end_log_pos 786 Xid = 175COMMIT/*!*/;................................
这里介绍下
--start-position=N #设置其实的偏移量
--stop-position=N #设置终止的偏移量
在这个文件中,我们可以看到 DELETE 的操作的起始位置是 653,终止位置是 759.那么我们只要重做第二个日志文件的开头到 653 的操作,然后再从 759 到末尾的操作,我们就可以把数据给恢复回来,而不会 DELETE 数据。所以执行两个命令
mysqlbinlog data\mysql-bin.000002 --stop-pos=653 | mysql -uroot -p123456mysqlbinlog data\mysql-bin.000002 --start-pos=759 | mysql -uroot -p123456mysqlbinlog data\mysql-bin.000003 --stop-pos=587 | mysql -uroot -p123456
mysql binlog使用_mysql binlog 基本使用相关推荐
- mysql修改binlog格式_mysql binlog格式...
项目采用了spring的事务机制,在发布时遇到了问题.后台报了异常. Binary logging not possible. Message: Transaction level 'READ-COM ...
- mysql 写binlog 原理_MySQL binlog原理及应用
01 概述 Binlog它记录了所有的DDL和DML(除了数据查询语句)语句,以事件(EVENT)形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的. 一般来说开启二进制日志 ...
- mysql 5.7 binlog 压缩_mysql binlog压缩处理
前一段时间系统mysql压力较大,产生大量binlog,大量的binlog删除后又担心后期出现问题难以调查,保存后又占用本身的空间存储. 每天产生的binlog可以多达5-6G. 因此考虑是否扩容机器 ...
- mysql binlog c++_MySQL binlog的格式解析
我搜集到了一些资料,对理解代码比较有帮助. 在头文件中binlog_event.h中,有描述 class Log_event_header class Log_event_footer 参见[Myst ...
- mysql事件类型_MySQL binlog中的事件类型
MySQL binlog记录的所有操作实际上都有对应的事件类型的,譬如STATEMENT格式中的DML操作对应的是QUERY_EVENT类型,ROW格式下的DML操作对应的是ROWS_EVENT类型. ...
- mysql binlog 记录_MYSQL binlog 日志内容查看
记录mysql数据库真正执行更改的所有操作(DML语句),不包含那些没有修改任何数据的语句,不会记录select和show这样的语句. 二进制日志的作用: 1. 可以完成主从复制的功能 2. 进行恢复 ...
- mysql binlog协议_mysql binlog协议分析--具体event
这几天在修改canal, 连接mysql和maria接收到的event有所区别 拿一个简单的insert sql来举例 mysql 会有以下几个event写入到binlog里 1.ANONYMOUS_ ...
- mysql binlog 权限_MySQL如何开启binlog?binlog三种模式的分析
前提,创建表t,并插入数据,语句如下: CREATE TABLE `t` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT NULL, `t_modified` ...
- mysql binlog过期策略_MySQL binlog日志优化方案
Binlog 相关参数及优化策略 我们首先看看Binlog 的相关参数,通过执行如下命令可以获得关于Binlog 的相关参数.当然,其中也显示出了" innodb_locks_unsafe_ ...
最新文章
- python多线程读取文件的问题_Python多线程同步---文件读写控制方法
- Machine Learning:如何选择机器学习算法?
- 几种常见自动化测试框架
- jq之toggle()
- python海龟编辑器画小汽车_【海龟编辑器下载】海龟编辑器(Python编辑器) v1.3.4 官方免费版-趣致软件园...
- cad图纸怎么看懂_CAD图纸太大,打开的时候很卡怎么办?教你如何给图纸瘦身
- 苹果逼停微信赞赏功能,最大赢家是...
- 没有方案你抱怨;有了方案你会认真看吗?
- 使用libyuv对YUV数据进行缩放,旋转,镜像,裁剪等操作
- axios get请求中文乱码
- NC协议服务器端库登陆失败,NC数据库日常维护
- vim:the damn garbled of vim-devicons from nerdtree
- 创建asp网站iis发布网站用IP地址进行访问
- 小程序camera组件设置前前置摄像头无效
- java即时通讯 开源_java开源即时通讯软件服务端openfire源码构建
- UltraEdit 应用程序发生错误0xc0000417
- 【STM32】入门(零):keil安装、科学使用、芯片包安装
- docker容器启动后无法访问宿主机host
- SFF-8485-串行GPIO(SGPIO)总线规范
- 迁移WSL时的报错:0x80073d21 此应用的发布者不允许将其移动到其他位置
热门文章
- 【Elasticsearch】如何使用 Elasticsearch 6.2 搜索中文、日文和韩文文本 - 第 1 部分: 分析工具
- 【Elasticsearch】es 7.8.0 唐诗三百首写入 Elasticsearch 会发生什么
- 【Kafka】Kafka broker id 解释以及 自动生成id
- 20-10-010-安装-kafka_2.11-1.1.0-单节点测试
- 【集合】Java 集合的ConcurrentModificationException
- flink报错:typeutils.CompositeType$InvalidFieldReferenceException Cannot reference field by field expre
- java自定义栈类代码,异常堆栈和自定义类
- ModelAndView视图解析器小结
- java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用
- Redis Topic说明