• binlog2sql 安装使用


    github:

    https://github.com/danfengcao/binlog2sql

    1、安装

    git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql

    root_D-v024@:~# git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql
    Cloning into 'binlog2sql'...
    remote: Enumerating objects: 323, done.
    remote: Total 323 (delta 0), reused 0 (delta 0), pack-reused 323
    Receiving objects: 100% (323/323), 153.26 KiB | 133.00 KiB/s, done.
    Resolving deltas: 100% (170/170), done.

    2、执行:pip install -r requirements.txt

    root_D-v024@:~/binlog2sql# pip install -r requirements.txt
    -bash: pip: command not found

    报错没有pip命令,手动安装一下。

    安装pip

     wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb"  --no-check-certificate
    
    tar xvf pip-1.5.4.tar.gz 
    
    cd pip-1.5.4
    
    python setup.py install

    再次安装:pip install -r requirements.txt

    root_D-v024@:~/binlog2sql# pip install -r requirements.txt
    Downloading/unpacking PyMySQL==0.7.11 (from -r requirements.txt (line 1))
      Downloading PyMySQL-0.7.11-py2.py3-none-any.whl (78kB): 78kB downloaded
    Downloading/unpacking wheel==0.29.0 (from -r requirements.txt (line 2))
      Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB): 66kB downloaded
    Downloading/unpacking mysql-replication==0.13 (from -r requirements.txt (line 3))
      Downloading mysql-replication-0.13.tar.gz
      Running setup.py (path:/tmp/pip_build_root/mysql-replication/setup.py) egg_info for package mysql-replication
        
    Installing collected packages: PyMySQL, wheel, mysql-replication
      Running setup.py install for mysql-replication
        
    Successfully installed PyMySQL wheel mysql-replication
    Cleaning up...
    root_D-v024@:~/binlog2sql# 

    3、

    制作测试数据

    drop table if exists tt;
    create table tt(id int primary key,name varchar(10));
    insert into tt(id,name) values(1,'张三');
    insert into tt(id,name) values(2,'李四');
    insert into tt(id,name) values(3,'王五');

    4、模拟误删除一条记录

    delete from tt where id=1;

    5、使用binlog2sql分析binlog,生成执行过的SQL

    root_D-v024@:~/binlog2sql/binlog2sql# python binlog2sql.py -h106.60.14.126 -P3357 -uroot -p'123456' -dceshi -t tt --start-file='mysql-bin.000022'
    DELETE FROM `ceshi`.`tt` WHERE `id`=1 AND `name`='张三' LIMIT 1; #start 4 end 388 time 2021-04-13 18:42:39

    6、生成回滚SQL,加入 --flashback 参数

    root_D-v024@:~/binlog2sql/binlog2sql# python binlog2sql.py --flashback -h106.60.14.126 -P3357 -uroot -p'123456' -dceshi -t tt --start-file='mysql-bin.000022'
    INSERT INTO `ceshi`.`tt`(`id`, `name`) VALUES (1, '张三'); #start 4 end 388 time 2021-04-13 18:42:39

    7、指定时间段分析binlog,生成回滚SQL

    root_D-v024@:~/binlog2sql/binlog2sql# python binlog2sql.py --flashback -h106.60.14.126 -P3357 -uroot -p'123456' -dceshi -t tt --start-file='mysql-bin.000022' --start-datetime='2021-04-13 18:00:00' --stop-datetime='2021-04-13 19:00:00'
    INSERT INTO `ceshi`.`tt`(`id`, `name`) VALUES (1, '张三'); #start 4 end 388 time 2021-04-13 18:42:39

  • 相关阅读:
    MySQL主从复制
    shell 文件中添加内容
    nginx+tomcat 负载均衡
    springMVC接受数组
    javaweb集成swagger
    svn 验证位置失败 Authorization failed
    java 实现一个beautiful的弹层和具体功能
    java 实现冒泡排序
    Error running 'Unnamed': Address localhost:1099 is already in use
    页面怎么引用外部css+js代码
  • 原文地址:https://www.cnblogs.com/nanxiang/p/14654749.html
Copyright © 2020-2023  润新知