zoukankan      html  css  js  c++  java
  • binlog2sql使用介绍

    mysql原生自带mysqlbinlog,但使用binlog恢复的原理是“重做”而不是“回滚”,所以很多应急场景mysqlbinlog已经不再合适,那就研究下binlog2sql怎么使用。

    安装依赖特别多,推荐大神博客下载安装就可以,https://www.cnblogs.com/ivictor/p/6418409.html。

    使用该工具的前提

    1. binlog_format为ROW,且binlog_row_image为full或noblog,默认为full。

    2. 必须开启MySQL Server,理由有如下两点:

       1> 它是基于BINLOG_DUMP协议来获取binlog内容

       2> 需要读取server端information_schema.COLUMNS表,获取表结构的元信息,拼接成可视化的sql语句

    该工具所需权限如下:

    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 
    因为是伪装成slave来获取主的二进制事件,故无需对binlog有可读权限。


    安装后查看查看binglog2sql怎么使用:

     python binlog2sql.py --help
    usage: binlog2sql.py [-h HOST] [-u USER] [-p PASSWORD] [-P PORT]
                         [--start-file STARTFILE] [--start-position STARTPOS]
                         [--stop-file ENDFILE] [--stop-position ENDPOS]
                         [--start-datetime STARTTIME] [--stop-datetime STOPTIME]
                         [--stop-never] [--help] [-d [DATABASES [DATABASES ...]]]
                         [-t [TABLES [TABLES ...]]] [-K] [-B]

    Parse MySQL binlog to SQL you want

    optional arguments:
      --stop-never          Wait for more data from the server. default: stop
                            replicate at the last binlog when you start binlog2sql
      --help                help infomation
      -K, --no-primary-key  Generate insert sql without primary key if exists
      -B, --flashback      Flashback data to start_postition of start_file

    connect setting:
      -h HOST, --host HOST  Host the MySQL database server located
      -u USER, --user USER  MySQL Username to log in as
      -p PASSWORD, --password PASSWORD
                            MySQL Password to use
      -P PORT, --port PORT  MySQL port to use

    range filter:
      --start-file STARTFILE
                            Start binlog file to be parsed
      --start-position STARTPOS, --start-pos STARTPOS
                            Start position of the --start-file
      --stop-file ENDFILE, --end-file ENDFILE
                            Stop binlog file to be parsed. default: '--start-file'
      --stop-position ENDPOS, --end-pos ENDPOS
                            Stop position of --stop-file. default: latest position
                            of '--stop-file'
      --start-datetime STARTTIME
                            Start reading the binlog at first event having a
                            datetime equal or posterior to the argument; the
                            argument must be a date and time in the local time
                            zone, in any format accepted by the MySQL server for
                            DATETIME and TIMESTAMP types, for example: 2004-12-25
                            11:25:56 (you should probably use quotes for your
                            shell to set it properly).
      --stop-datetime STOPTIME
                            Stop reading the binlog at first event having a
                            datetime equal or posterior to the argument; the
                            argument must be a date and time in the local time
                            zone, in any format accepted by the MySQL server for
                            DATETIME and TIMESTAMP types, for example: 2004-12-25
                            11:25:56 (you should probably use quotes for your
                            shell to set it properly).

    schema filter:
      -d [DATABASES [DATABASES ...]], --databases [DATABASES [DATABASES ...]]
                            dbs you want to process
      -t [TABLES [TABLES ...]], --tables [TABLES [TABLES ...]]
                            tables you want to process

    首先查看线上的数据:


    现在人为更新一条数据:

    查看binlog events:

    执行binlog2sql查看先关的SQL:

    -B参数生成相反的回滚SQL,或者>到文件中,


    执行反向SQL或者source 生成的文件,即可恢复数据.

    binlog2sql使用方法验证完毕。

  • 相关阅读:
    Django错误笔记1
    Django学习笔记1 启动及配置一个Django项目
    ubuntu 安装mysqldb
    二叉树 总结
    序列二叉树和反序列 (不是自己做的)
    二叉树的路径
    二叉搜索树的后续遍历
    二叉树层序遍历
    栈的压入 弹出序列
    包含 min的栈
  • 原文地址:https://www.cnblogs.com/siweiyidu/p/14035150.html
Copyright © 2011-2022 走看看