iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysqlbinlog的flashback工具binlog2sql
  • 418
分享到

mysqlbinlog的flashback工具binlog2sql

2024-04-02 19:04:59 418人浏览 独家记忆
摘要

my.cnf中关于binlog的设置 binlog_fORMat = row    binlog格式必须是row模式 



my.cnf中关于binlog的设置 binlog_fORMat = row    binlog格式必须是row模式 binlog_row_image = full   必须为full  默认就是full 准备工作 #yum intall git #yum install python-setuptools    pip需要这个 #wget "https://pypi.Python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate # tar -xzvf pip-1.5.4.tar.gz # cd pip-1.5.4 # python setup.py install 安装  # git clone Https://GitHub.com/danfenGCao/binlog2sql.git && cd binlog2sql # pip install -r requirements.txt 用户授权(用于binglog2sql使用) GRANT SELECT, REPLICATioN SLAVE, REPLICATION CLIENT ON *.* TO xiaomage@'localhost' identified by 'xiaomage';

select:需要读取server端information_schema.COLUMNS表,获取表结构的元信息,拼接成可视化的sql语句super/replication client:两个权限都可以,需要执行'SHOW MASTER STATUS', 获取server端的binlog列表 replication slave:通过BINLOG_DUMP协议获取binlog内容的权限

测试: Mysql> select *  from test;



+------+-------+----------+ | id   | name  | time     | +------+-------+----------+ |    1 | lalal | 16:32:21 | |    2 | ababa | 16:32:34 | |    3 | jgjgj | 16:32:43 | |    4 | opopo | 16:32:52 | |    5 | jljlj | 16:33:06 | +------+-------+----------+ 5 rows in set (0.00 sec) mysql> delete from test;   --清空表-- Query OK, 5 rows affected (0.01 sec)


   


mysql> show master status;   +------------------+----------+--------------+------------------+-------------------------------------------+ | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                         | +------------------+----------+--------------+------------------+-------------------------------------------+ | mysql-bin.000013 |     2016 |              |                  | f90ca153-b46d-11e6-ab68-0800279ecefa:1-35 | +------------------+----------+--------------+------------------+-------------------------------------------+ 一般情况下都是知道个大概的时间,先从大概的时间找起 [root@master binlog2sql]# python /opt/binlog2sql/binlog2sql/binlog2sql.py  -uxiaomage -pxiaomage -dtest -ttest --start-file=mysql-bin.000013 --start-datetime='2017-05-05 16:30:00' --stop-datetime='2017-05-05 16:40:00'  USE test; create table test (id int, name varchar(20),time time); INSERT INTO `test`.`test`(`time`, `id`, `name`) VALUES ('16:32:21', 1, 'lalal'); #start 478 end 659 time 2017-05-05 16:32:21 INSERT INTO `test`.`test`(`time`, `id`, `name`) VALUES ('16:32:34', 2, 'ababa'); #start 690 end 871 time 2017-05-05 16:32:34 INSERT INTO `test`.`test`(`time`, `id`, `name`) VALUES ('16:32:43', 3, 'jgjgj'); #start 902 end 1083 time 2017-05-05 16:32:43 INSERT INTO `test`.`test`(`time`, `id`, `name`) VALUES ('16:32:52', 4, 'opopo'); #start 1114 end 1295 time 2017-05-05 16:32:52 INSERT INTO `test`.`test`(`time`, `id`, `name`) VALUES ('16:33:06', 5, 'jljlj'); #start 1326 end 1507 time 2017-05-05 16:33:06 USE test; alter table test modify time datetime; USE test; alter table test modify time time; DELETE FROM `test`.`test` WHERE `time`='16:32:21' AND `id`=1 AND `name`='lalal' LIMIT 1; #start 1756 end 1985 time 2017-05-05 16:37:27     ----这就是delete的数据--- DELETE FROM `test`.`test` WHERE `time`='16:32:34' AND `id`=2 AND `name`='ababa' LIMIT 1; #start 1756 end 1985 time 2017-05-05 16:37:27 DELETE FROM `test`.`test` WHERE `time`='16:32:43' AND `id`=3 AND `name`='jgjgj' LIMIT 1; #start 1756 end 1985 time 2017-05-05 16:37:27 DELETE FROM `test`.`test` WHERE `time`='16:32:52' AND `id`=4 AND `name`='opopo' LIMIT 1; #start 1756 end 1985 time 2017-05-05 16:37:27 DELETE FROM `test`.`test` WHERE `time`='16:33:06' AND `id`=5 AND `name`='jljlj' LIMIT 1; #start 1756 end 1985 time 2017-05-05 16:37:27 生成回滚语句 -B,上面看到的具体的位置start 1756 end 1985(这里一定要过滤好了,一定要细心,配合grep什么的进行匹配) [root@master binlog2sql]# python /opt/binlog2sql/binlog2sql/binlog2sql.py  -uxiaomage -pxiaomage -dtest -ttest --start-file=mysql-bin.000013 --start-position=1756 --stop-position=1985 -B  INSERT INTO `test`.`test`(`time`, `id`, `name`) VALUES ('16:33:06', 5, 'jljlj'); #start 1756 end 1985 time 2017-05-05 16:37:27 INSERT INTO `test`.`test`(`time`, `id`, `name`) VALUES ('16:32:52', 4, 'opopo'); #start 1756 end 1985 time 2017-05-05 16:37:27 INSERT INTO `test`.`test`(`time`, `id`, `name`) VALUES ('16:32:43', 3, 'jgjgj'); #start 1756 end 1985 time 2017-05-05 16:37:27 INSERT INTO `test`.`test`(`time`, `id`, `name`) VALUES ('16:32:34', 2, 'ababa'); #start 1756 end 1985 time 2017-05-05 16:37:27 INSERT INTO `test`.`test`(`time`, `id`, `name`) VALUES ('16:32:21', 1, 'lalal'); #start 1756 end 1985 time 2017-05-05 16:37:27 重定向到/opt/rollback.sql文件中 恢复: mysql> select count(*) from test; +----------+ | count(*) | +----------+ |      0 | +----------+ 1 row in set (0.05 sec) mysql> source /opt/rollback.sql Query OK, 1 row affected (0.03 sec) Query OK, 1 row affected (0.00 sec) Query OK, 1 row affected (0.07 sec) Query OK, 1 row affected (0.04 sec) Query OK, 1 row affected (0.00 sec) mysql> select * from test;         +------+-------+----------+ | id   | name  | time     | +------+-------+----------+ |    5 | jljlj | 16:33:06 | |    4 | opopo | 16:32:52 | |    3 | jgjgj | 16:32:43 | |    2 | ababa | 16:32:34 | |    1 | lalal | 16:32:21 | +------+-------+----------+ 5 rows in set (0.00 sec)         ok恢复会来了


解析模式   --stop-never     持续同步binlog。可选。不加则同步至执行命令时最新的binlog位置。 -K, --no-primary-key 对INSERT语句去除主键。可选。     -B, --flashback 生成回滚语句,可解析大文件,不受内存限制,每打印一千行加一句SLEEP SELECT(1)。可选。与stop-never或no-primary-key不能同时添加。   

解析范围控制    --start-file 起始解析文件。必须。 --start-position/--start-pos start-file的起始解析位置。可选。默认为start-file的起始位置。 --stop-file/--end-file 末尾解析文件。可选。默认为start-file同一个文件。         若解析模式为stop-never,此选项失效。 --stop-position/--end-pos stop-file的末尾解析位置。可选。默认为stop-file的最末位置;若解析模式为stop-never,此选项失效。 --start-datetime 从哪个时间点的binlog开始解析,         格式必须为datetime,如'2016-11-11 11:11:11'。可选。默认不过滤。 --stop-datetime 到哪个时间点的binlog停止解析,格式必须为datetime,如'2016-11-11 11:11:11'。可选。默认不过滤。   

对象过滤    -d, --databases 只输出目标db的sql。可选。默认为空。 -t, --tables 只输出目标tables的sql。可选。默认为空

 参考:https://github.com/danfengcao/binlog2sql


您可能感兴趣的文档:

--结束END--

本文标题: mysqlbinlog的flashback工具binlog2sql

本文链接: https://www.lsjlt.com/news/46014.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql闪回工具binlog2sql的安装使用过程是怎样的
    这期内容当中小编将会给大家带来有关mysql闪回工具binlog2sql的安装使用过程是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。软件包下载地址:链接:http...
    99+
    2024-04-02
  • mysqlbinlog工具基于日志恢复的示例分析
    这篇文章将为大家详细讲解有关mysqlbinlog工具基于日志恢复的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1)RESET MASTER在上面查看日志存放的...
    99+
    2024-04-02
  • 工具类之关于RestTemplateUtil工具类的使用
    目录工具类-RestTemplateUtil工具类代码可直接复制使用RestTemplate配置类和工具类工具类-RestTemplateUtil工具类 代码可直接复制使用 配置Re...
    99+
    2022-11-13
    工具类使用  RestTemplateUtil工具类 RestTemplateUtil的使用
  • ext3grep 工具的使用
     ext3grep 是ext3文件系统的数据恢复工具,在ext3文件系统里删除一个文件,就是将该文件的inode节点中的指针清除,其实数据还在存在block当中的,所以如果没有新的数据来占用该block,只要恢复了inode指向,该文件就恢...
    99+
    2023-01-31
    工具 ext3grep
  • podman容器工具的具体使用
    目录podman简介Podman和Docker的主要区别是什么?podman安装使用配置镜像加速相关工具podman简介 Podman是一个开源项目,可在大多数Linux平台上使用并...
    99+
    2024-04-02
  • xshell会话批量迁移到mobaxterm的工具(python小工具)
    自己写了一个Python小工具:xshell2mobaxterm,可以将xshell的session转换成mobaxterm的数据文件以导入到mobaxterm中。 exe版的编译好...
    99+
    2024-04-02
  • PHP CI/CD工具综述:选择最适合您的工具
    PHP CI/CD工具是用于构建、测试和部署PHP应用程序的自动化工具。这些工具可以帮助开发人员提高生产力和代码质量,并减少部署应用程序所需的精力和时间。 Jenkins Jenkins是一个流行的开源CI/CD工具,可以部署到任何平台...
    99+
    2024-02-09
    PHP CI/CD Jenkins Travis CI CircleCI GitLab CI Semaphore CI Buddy Codeship
  • Web.config 转换工具箱:探索强大的工具和资源
    ...
    99+
    2024-04-02
  • PHP CI/CD 工具比较:寻找最适合你的工具
    持续集成 (CI) 和持续交付 (CD) 工具对于自动化软件开发和交付流程至关重要。对于使用 PHP 的开发团队来说,有多种 CI/CD 工具可供选择。以下是对最流行的工具的比较: Jenkins 一个开源、可扩展的 CI/CD 工具...
    99+
    2024-03-04
    PHP CI/CD、Jenkins、Travis CI、CircleCI、GitHub Actions
  • 报表工具的分类
    报表工具的分类[@more@]从目前的应用来看,报表工具主要从以下几个方面来分:(1)从技术路线来分:JAVA报表、非JAVA报表。随着B/S的应用越来越多,走JAVA路线的用户对纯JAVA报表工具的需求越来越大。非JAVA报表一是厂家出于...
    99+
    2023-06-03
  • PHP中的调试工具
    随着互联网技术的发展,Web开发已逐渐成为了互联网领域最重要的一部分。然而,Web开发存在一种常见的问题,那就是调试问题。当Web应用程序出现错误时,我们需要能够快速、准确地找到错误,以便及时修复。PHP是常用的Web编程语言,下面我们将介...
    99+
    2023-05-24
    调试工具 PHP debugger。
  • ASP 网站部署工具与其他部署工具的对比
    本文比较了 ASP 网站部署工具和一些其他流行的网站部署工具,包括 Visual Studio、IIS Manager、WebMatrix 和 Octopus Deploy。我们将比较这些工具的功能、易用性和价格。 Visual Stud...
    99+
    2024-02-07
    ASP 网站部署工具, 网站部署, 自动化部署, 发布工具, Web Deploy
  • Linxu下性能指标采集工具之nmon工具的使用
    目录前言nmon工具下载nmon使用扩展.nmon文件解析前言 近期在测试JefLogTail,由于JefLogTail使用的是轮询的方式来监听文件夹,所以对cpu的消耗可能会高一些,所以在测试的时候着重关注CPU,li...
    99+
    2023-04-27
    Linux采集工具nmon Linux采集工具 Linux nmon
  • Java计时器工具StopWatch的具体使用
    目录前言Spring StopWatch实践例子源码分析lang3 StopWatch总结前言 平常,我们想要统计某一段代码块,或某一个方法的执行时间,最简单的是采用如下的方式。 ...
    99+
    2024-04-02
  • JavaScript 浏览器开发者工具,前端开发的超级工具
    JavaScript 浏览器开发者工具是一套强大的工具,可帮助前端开发人员调试、分析和优化其 Web 应用程序。这些工具集成在 Chrome、Firefox、Safari 和 Microsoft Edge 等现代浏览器中,提供了各种功能,...
    99+
    2024-04-02
  • Django中的Admin管理工具具体用法
    这篇文章主要讲解了“Django中的Admin管理工具具体用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Django中的Admin管理工具具体用法”吧!Django admin自动管理工...
    99+
    2023-06-02
  • Linux开发工具和Windows开发工具对比的示例分析
    这篇文章给大家分享的是有关Linux开发工具和Windows开发工具对比的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux开发工具就C++开发工具而言,与Windows下微软(VC, VS2005...
    99+
    2023-06-16
  • jdk的国际化工具 native2ascii.exe
    通过该工具可以实现文版文件转换成unicode字符实现国际化。语法:native2ascii 源文件路径和名称 目标文件路径和名称[@more@]首先将JDK的bin目录加入系统变量path。在盘下建立一个test目录,在test目录里建立...
    99+
    2023-06-03
  • SQLmap 扫描工具的使用
    一、SQLMap拖库: SQLMap可以完成注入点的发现,数据库类型的确认,WebShell权限和路径的确认,拖库等一系列功能。测试的Payload共分为5级:Level 1 ~ Level 5,Level 1属于基础级,Payload相对...
    99+
    2023-08-31
    数据库 php mysql
  • kali linux的工具有哪些
    今天小编给大家分享一下kali linux的工具有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。kali linux工具...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作