展开

关键词

binlog2sql代码解读

这是学习笔记的第 1895 篇文章 今天看了下binlog2sql的代码,总体来说是代码质量是很高的。 通过阅读好的开源项目,也能够让自己多沉淀些学习经验。 binlog2sql的工程主要包含两个Python文件,一个是binlog2sql.py,这个文件是对外统一使用的脚本入口,另外一个是工具类binlog2sql_util.py ? 这部分逻辑是相对通用的,而不是只局限于使用binlog2sql 通读源代码后,发现有一个潜在的瓶颈点就是在处理binlog的时候,使用了开源项目python-my-replication来模拟从库 ? 所以明确了binlog2sql的代码逻辑后,我们需要做的一些改进就可以主要在BinLogStreamReader的方案思路上进行改进。 ?

57510

使用binlog2sql恢复数据

对于误操作数据的闪回,我们一般推荐 binlog2sql 或者MyFlash(美团点评开源的) 本篇文章, 我们介绍下 binlog2sql的用法: binlog2sql 【首级推荐使用】 官网:https ://github.com/danfengcao/binlog2sql 注意: binlog必须是row格式,并且是FULL类型的记录。 centos6需要升级下这个包,不然没法去github拉代码 cd /root/ git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql /binlog2sql/binlog2sql.py -h192.168.11.20 -P3306 -uflashback -p'admin' -d testdb -t t_stud --start-file /binlog2sql/binlog2sql.py --flashback -h192.168.11.20 -P3306 -uflashback -p'admin' -d testdb -t t_stud

27230
  • 广告
    关闭

    老用户专属续费福利

    云服务器CVM、轻量应用服务器1.5折续费券等您来抽!

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

    python binlog2sql同步mysql数据

    ---- binlog2sql:https://github.com/danfengcao/binlog2sql binlog2sql是大众点评开源的一款用于解析binlog的工具 依赖包 PyMySQL (注:为了方便解释,我们用binlog2sql将原始binlog转化成了可读SQL) 原始:DELETE FROM `test`. 我们使用开源工具binlog2sql来进行实战演练。binlog2sql由美团点评DBA团队(上海)出品,多次在线上环境做快速回滚。 首先我们安装binlog2sql: shell> git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql shell 以binlog2sql为代表。 优点 兼容性好。

    1.2K20

    binlog2sql在MySQL8下的微调

    binlog2sql 默认的requirements中的依赖包版本比较低,不适合mysql8, 需要用如下的几个包: $ cat .. = c if part: yield part[::-1] 其它可以做的改动(非必须) vim binlog2sql.py 修改下里面的取server_id的逻辑,以便支持多个binlog2sql

    6710

    使用binlog2sql针对mysql进行数据恢复

    binlog2sql 从MySQL binlog解析出你要的SQL。根据不同选项,你可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等。 Python 2.6, 2.7, 3.4 MySQL 5.6 安装 shell> git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql shell> python binlog2sql/binlog2sql.py -h127.0.0.1 -P3306 -uadmin -p'admin' -dtest -ttbl --start-file 结合grep、编辑器等) shell> python binlog2sql/binlog2sql.py -h127.0.0.1 -P3306 -uadmin -p'admin' -dtest -ttbl 参考:https://github.com/danfengcao/binlog2sql ---- -END-

    36740

    开源数据闪回工具—binlog2sql介绍

    一、binlog2sql介绍 binlog2sql是国内MySQL大佬danfengcao使用python开发,许多MySQL爱好者参与改进的一款MySQL binlog解析软件。 github地址为:https://github.com/danfengcao/binlog2sql 该工具主要用于: 数据快速回滚(闪回); 从binlog生成标准SQL; 适用MySQL版本:MySQL5.6 、MySQL5.7 二、安装binlog2sql # 安装git shell> yum install -y git # 安装pip工具 shell> yum install -y epel-release && cd binlog2sql shell> pip install -r requirements.txt 三、使用前提 基于最小侵入原则,我们一般在管理节点执行操作,只需把binlog2sql 市面上也有一些其他开源工具,原理都差不多,但使用效率上binlog2sql更胜一筹,通过binlog2sql可以很容易搞定: python binlog2sql.py -h ip

    88030

    binlog2sql,你该知道的数据恢复工具

    关于数据恢复之前已分享过2篇,链接如下: MySQL数据备份及还原(一) MySQL数据备份及还原(二) 今天分享一下binlog2sql,它是一款比较常用的数据恢复工具,可以通过它从MySQL binlog SQL,带来的衍生功能 1 系统环境准备 1.1 安装git 该项目分享与git上,可以直接从git上获取,因此可以先安装git yum install -y pip 1.2 安装python 因binlog2sql 安装方法可以参考历史文章中的 《一分钟搞定pip安装》 1.4 binlog2sql下载及依赖包安装 binlog2sql可以部署在其他机器上,而不是必须部署在mysql服务端上 git clone https ://github.com/danfengcao/binlog2sql.git && cd binlog2sql pip install -r requirements.txt ? 4 使用说明 参考原文链接:https://github.com/danfengcao/binlog2sql 4.1 解析模式 --stop-never 持续解析binlog。可选。

    86530

    使用binlog2sql做数据恢复的简单示例

    这里我们介绍 binlog2sql 工具,你不用那么麻烦的去实现此功能。 binlog2sql 工具 binlog2sql 是大众点评开源的一款用于解析 binlog 的工具,详见:https://github.com/danfengcao/binlog2sql 使用 binlog2sql 使用 binlog2sql 将二进制文件解析为了 SQL 格式,这个文件当中包括我们之前做的建表 SQL 以及插入示例数据的 SQL,当然也包括我们误操作的 UPDATE 语句。 使用 binlog2sql 生成回滚 SQL python binlog2sql.py --flashback -h10.89.1.143 -P3306 -udev -p'123456' -dtest 可以看到 binlog2sql 生成了:#start 2616 end 3028 位置的回滚 SQL。我们把这个 SQL 复制下来到 MySQL 中执行,即可实现数据恢复。 ? -END-

    21530

    【MySQL】Mysql误操作后使用binlog2sql快速回滚

    在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL 二、binlog2sql安装 从mysql binlog解析出你要的sql SQL,带来的衍生功能 2.2、安装 # cd /usr/local # git clone https://github.com/danfengcao/binlog2sql.git # ls binlog2sql games java lib64 mariadb sbin src # cd binlog2sql # pip install -r requirements.txt -bash /binlog2sql/binlog2sql.py --flashback -h127.0.0.1 -P3306 -uflashback -pflashback -dttt -tusers --start-file 此时虽然在binlog中记录了所有的event,但是使用binlog2sql生成标准sql、回滚sql的时候已经找不到了dml操作的相应的表 4.4、DDL无法使用binlog2sql闪回数据。

    79331

    binlog2sql的对MySQL列的兼容性测试

    结论: binlog2sql对 int类型、char/varchar类型、text 类型 支持完善。 binlog2sql对bit类型支持不太好,后期需要修数据。 binlog2sql对json类型支持的不完善,导出的数据基本上无法使用。 样例: binlog2sql对 int类型、char/varchar类型、text 类型 支持完善,如下案例: CREATE TABLE `sbt_t1` ( `id` int NOT -----+-----+ 2 rows in set (0.00 sec) [root@mxali0027 mysqlBak]# python3.6 binlog2sql-master/binlog2sql binlog2sql对bit类型支持不太好: sbtest> CREATE TABLE `bit_t1` ( `id` int NOT NULL AUTO_INCREMENT,

    10210

    【MySQL】数据库闪回工具之binlo

    ]# git clone https://github.com/danfengcao/binlog2sql.git Initialized empty Git repository in /root/binlog2sql [root@wallet01 ~]# cd binlog2sql [root@wallet01 binlog2sql]# pip install -r requirements.txt [root@wallet01  binlog2sql]# cd binlog2sql/ [root@wallet01 binlog2sql]# python binlog2sql.py --help usage: binlog2sql.py ----------+ | 2019-01-04 17:14:09 | +---------------------+ 1 row in set (0.00 sec) [root@wallet01 binlog2sql  'JV', '815964094', 0.15, 3680226.00);  #start 430 end 712 time 2019-01-04 17:04:25 [root@wallet01 binlog2sql

    21810

    Mysql误删,恢复数据,binlog闪回,宝塔面板

    所以有这种根据binlog得到执行sql语句、闪回sql语句,我们只需要利用根据分析binlog,然后就可以找到准确的数据改动sql,并得到闪回sql,检查无误后执行就可以恢复数据了 准备工作 我们采用binlog2sql 工具来分析,由上海美团DBA团队出品 使用的是python语言,所以我们需要提前安装好python语言 我使用的是宝塔面板,宝塔面板已经内置安装了python,所以直接开始安装更三十就好了 安装binlog2sql 工具 cd /www/server git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql pip install ------------+------------------+-------------------+ 1 row in set (0.00 sec) 我们记住mysql-bin.000006 打开binlog2sql 工具分析 进入我们安装后的binlog2sql工具目录 cd /www/server/binlog2sql/binlog2sql ll 可以看到这里面有py脚本 得到历史sql语句 python binlog2sql.py

    1.8K20

    【赵渝强老师】MySQL的闪回

    我们使用开源工具binlog2sql来进行实战演练。binlog2sql由美团点评DBA团队(上海)出品,多次在线上环境做快速回滚。 ① 安装binlog2sql工具 首先安装Python工具管理表pip yum -y install epel-release yum -y install python-pip 安装binlog2sql git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql pip install -r requirements.txt (注:如果有多个sql误操作,则生成的binlog可能分布在多个文件,需解析多个文件) python binlog2sql/binlog2sql.py -uroot -pWelcome_1 \ --start-file 结合grep、编辑器等) python binlog2sql/binlog2sql.py -uroot -pWelcome_1 --start-file='mysql-binlog.000001' \

    37542

    【MySQL】删库别着急跑路(三)--binlog2sql闪回工具的使用

    1.先聊聊Binlog + 再说binlog2sql闪回工具之前,我们先聊下binlog。Binlog记录了MySQL数据库所有的DDL和DML操作。它在MySQL数据库里起着至关重要的作用。 数据可以通过binlog进行基于时间点和位置的恢复操作,binlog2sql工具也是依赖于binlog来实现的。 3. 审计工作。 2.MySQL闪回工具--binlog2sql介绍 + binlog2sql是大众点评开源的一款用于解析binlog的工具,可以从MySQL binlog解析出你要的SQL,根据不同选项可以得到原始SQL Binlog2sql工具的下载地址:https://github.com/danfengcao/binlog2sql。 执行语句回滚 [root@node1 binlog2sql]# mysql -uroot -p test <rollback.sql 5.

    31220

    恢复误操作的方法

    2.2 利用开源工具binlog2sql 恢复 binlog2sql 是大众点评公司的DBA 开发的一款基于通过解析binlog将delete 恢复为insert,update 的值 set 字段和where 使用限制 MySQL的binlog format 必须是row 安装 git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql (88) 误操作 update flashback set stat=15 恢复数据的步骤 1 获取误操作的dml所在的binlog,不过一般开发可不知道具体binlog,他们只知道什么时间误操作了,binlog2sql | 8209 | +------------------+-----------+ 3 rows in set (0.00 sec) 本例子中binlog为mysql-bin.000011 2 利用binlog2sql 9 | | 6 | 22 | | 7 | 42 | | 8 | 33 | | 9 | 66 | | 10 | 88 | +----+------+ 10 rows in set (0.00 sec) binlog2sql

    45130

    mysql binlog回滚数据

    service mysql restart #重启一下 2.安装binlog2sql的python代码 https://github.com/danfengcao/binlog2sql apt-get install python-pip git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql cd binlog2sql show binlog events in 'mysql-bin.000352' 5.用binlog2sql打印出sql语句和逆向回滚的sql语句,保存并导入 python binlog2sql.py

    83520

    my2sql

    类似工具有binlog2sql、MyFlash、my2fback等,本工具基于my2fback、binlog_rollback工具二次开发而来。 找出某个时间点数据库是否有大事务或者长事务 主从延迟,分析主库执行的SQL语句 除了支持常规数据类型,对大部分工具不支持的数据类型做了支持,比如json、blob、text、emoji等数据类型sql生成 产品性能对比 binlog2sql 当前是业界使用最广泛的MySQL回滚工具,下面对my2sql和binlog2sql做个性能对比。 my2sql binlog2sql 1.1G binlog生成回滚SQL 1分40秒 65分钟 1.1G binlog生成原始SQL 1分30秒 50分钟 1.1G binlog生成表DML统计信息、以及事务统计信息

    19420

    MySQL基于Binlog的数据恢复实战

    区间 3.3 position点确认 4、操作恢复 4.1 正向恢复 4.1.1 恢复备份数据 4.1.2 恢复binlog日志 4.1.3 检查数据恢复状态 4.2 反向恢复 4.2.1 安装binlog2sql ,将错误执行的update语句反转,再update回来 4.2.1 安装binlog2sql 项目地址: https://github.com/danfengcao/binlog2sql # 安装epel [root@localhost ~]# git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql Cloning [root@localhost binlog2sql]# pip install -r requirements.txt 4.2.2 生成反转sql 根据错误语句的position区间918611748 [root@localhost mysql]# python /root/binlog2sql/binlog2sql/binlog2sql.py -h 127.0.0.1 -u root -p -d

    45130

    当删库时如何避免跑路

    闪回工具有很多,本文中采用的是binlog2sql,它是大众点评开源的基于Python编写的MySQL日志闪回工具。 安装binlog2sql 该工具的安装步骤如下: # 安装前置工具 [root@PXC-Node3 ~]# yum install -y epel-release [root@PXC-Node3 ~]# /danfengcao/binlog2sql.git && cd binlog2sql # 安装binlog2sql所依赖的Python库 [root@PXC-Node3 ~/binlog2sql]# pip3 install -r requirements.txt 在MySQL配置文件中配置如下参数,因为binlog2sql是基于row格式的binlog进行解析的: [mysqld] ... 然后使用binlog2sql解析指定的binlog日志,具体命令如下: [root@PXC-Node3 ~/binlog2sql]# python3 binlog2sql/binlog2sql.py -

    36620

    MySQL备份恢复深度优化计划

    · 补充完善数据恢复的元数据设计 · 接入备份配置时,可以根据历史备份情况(比如时长,备份日志量)进行计算 3 MySQL备份流程 · 备份时间可以做到时间窗口统一调度 · binlog2sql · Binlog备份需要定制和改进binlog2sql,目前的瓶颈在于python解析binlog效率较低,需要提高恢复效率 · Binlog2sql目前仅在mysql 5.7版本使用,需要补充适用在MySQL

    34220

    扫码关注腾讯云开发者

    领取腾讯云代金券