• ADADADADAD

    mysql MyFlash使用[ mysql数据库 ]

    mysql数据库 时间:2024-12-03 12:14:09

    作者:文/会员上传

    简介:

    一.安装MyFlash
    1.安装条件
    binlog_format=ROW
    binlog_row_image=FULL
    仅支持5.6与5.7,并且只能回滚DML

    2.安装
    unzip MyFlash.zip
    yum -y install glib2*
    cd/data/MyFlash/

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    一.安装MyFlash
    1.安装条件
    binlog_format=ROW
    binlog_row_image=FULL
    仅支持5.6与5.7,并且只能回滚DML

    2.安装
    unzip MyFlash.zip
    yum -y install glib2*
    cd/data/MyFlash/MyFlash-master
    gcc -w `pkg-config --cflags --libs glib-2.0` source/binlogParseGlib.c -o binary/flashback
    *没有报错,证明安装成功

    二.恢复场景
    1.回滚整个文件
    ./flashback --binlogFileNames=haha.000041
    mysqlbinlog binlog_output_base.flashback | mysql -h -u -p

    2.回滚某个表的DML语句
    -删除数据
    mysql> show tables;
    +---------------+
    | Tables_in_wwj |
    +---------------+
    | t1|
    +---------------+
    1 row in set (0.00 sec)

    mysql> select * from t1;
    +----+------+
    | id | name |
    +----+------+
    | 5 | haha |
    | 6 | mxt3 |
    | 7 | mxt4 |
    +----+------+
    3 rows in set (0.00 sec)

    mysql> delete from t1;
    Query OK, 3 rows affected (0.02 sec)

    mysql> select * from t1;
    Empty set (0.00 sec)

    -生成恢复文件(回滚t1表的delete操作)
    cd/data/MyFlash/MyFlash-master/binary
    # ./flashback --databaseNames='wwj' --tableNames='t1' --sqlTypes='DELETE' --binlogFileNames=/home/mysql3307/mysql3307/mysql-bin.000001

    -查看文件
    # /usr/local/mysql/bin/mysqlbinlog -vv binlog_output_base.flashback

    -恢复
    # /usr/local/mysql/bin/mysqlbinlog binlog_output_base.flashback|/usr/local/mysql/bin/mysql -S /tmp/mysql3307.sock -p
    恢复完成
    mysql> select * from t1;
    +----+------+
    | id | name |
    +----+------+
    | 5 | haha |
    | 6 | mxt3 |
    | 7 | mxt4 |
    +----+------+
    3 rows in set (0.00 sec)

    3.恢复一段时间的binlog

    -生成数据
    [root@mysql5 mysql3307]# date
    Thu Mar 29 05:41:00 CST 2018
    insert into wwj.t3 values(4,'mxt2');
    insert into wwj.t3 values(5,'mxt3');
    insert into wwj.t3 values(6,'mxt4');
    [root@mysql5 mysql3307]# date
    Thu Mar 29 05:41:37 CST 2018
    delete from wwj.t3;
    [root@mysql5 mysql3307]# date
    Thu Mar 29 05:42:57 CST 2018

    - 回滚2018-03-29 05:41:37~2018-03-29 05:42:57 之间的操作
    - 查看binlog
    # /usr/local/mysql/bin/mysqlbinlog --start-datetime='2018-03-29 05:41:37' --stop-datetime='2018-03-29 05:42:57' mysql-bin.000001 --base64-output=decode-rows -v
    - 生成恢复文件
    ./flashback --databaseNames='wwj' --start-datetime='2018-03-29 05:41:37' --stop-datetime='2018-03-29 05:42:57' --binlogFileNames=/home/mysql3307/mysql3307/mysql-bin.000001
    - 查看回滚文件
    # /usr/local/mysql/bin/mysqlbinlog -vv binlog_output_base.flashback
    - 执行回滚
    /usr/local/mysql/bin/mysqlbinlog binlog_output_base.flashback|/usr/local/mysql/bin/mysql -S /tmp/mysql3307.sock -p
    - 查看恢复结果
    mysql> select * from wwj.t3;
    ERROR 2006 (HY000): MySQL server has gone away
    No connection. Trying to reconnect...
    Connection id:8
    Current database: *** NONE ***
    +----+------+
    | id | name |
    +----+------+
    | 4 | mxt2 |
    | 5 | mxt3 |
    | 6 | mxt4 |
    +----+------+

    3.恢复一段position的binlog文件
    - 生成数据
    insert into wwj.t3 values(4,'mxt2');
    insert into wwj.t3 values(5,'mxt3');
    insert into wwj.t3 values(6,'mxt4');
    insert into wwj.t2 values(4,'mxt2');
    insert into wwj.t2 values(5,'mxt3');
    insert into wwj.t2 values(6,'mxt4');
    insert into wwj.t1 values(4,'mxt2');
    insert into wwj.t1 values(5,'mxt3');
    insert into wwj.t1 values(6,'mxt4');

    mysql> delete from wwj.t3;
    Query OK, 3 rows affected (0.01 sec)
    mysql> delete from wwj.t2;
    Query OK, 3 rows affected (0.01 sec)
    mysql> delete from wwj.t1;
    Query OK, 3 rows affected (0.00 sec)

    -查看binlog
    /usr/local/mysql/bin/mysqlbinlog mysql-bin.000001 --base64-output=decode-rows -v

    -确认恢复mysql-bin.000001position1823~2487,生成恢复文件
    # ./flashback --databaseNames='wwj' --start-position=1823 --stop-position=2487 --binlogFileNames=/home/mysql3307/mysql3307/mysql-bin.000001

    - 查看回滚文件
    # /usr/local/mysql/bin/mysqlbinlog -vv binlog_output_base.flashback

    - 执行回滚
    /usr/local/mysql/bin/mysqlbinlog binlog_output_base.flashback|/usr/local/mysql/bin/mysql -S /tmp/mysql3307.sock -p

    -查看数据
    mysql> select * from wwj.t1;
    ERROR 2006 (HY000): MySQL server has gone away
    No connection. Trying to reconnect...
    Connection id:17
    Current database: *** NONE ***
    +----+------+
    | id | name |
    +----+------+
    | 4 | mxt2 |
    | 7 | mxt2 |
    | 5 | mxt3 |
    | 8 | mxt3 |
    | 6 | mxt4 |
    | 9 | mxt4 |
    +----+------+
    6 rows in set (0.00 sec)

    mysql> select * from wwj.t2;
    +----+------+
    | id | name |
    +----+------+
    | 4 | mxt2 |
    | 5 | mxt3 |
    | 6 | mxt4 |
    +----+------+
    3 rows in set (0.00 sec)

    mysql> select * from wwj.t3;
    +----+------+
    | id | name |
    +----+------+
    | 4 | mxt2 |
    | 5 | mxt3 |
    | 6 | mxt4 |
    +----+------+
    3 rows in set (0.00 sec)


    三.相关参数

    点击(此处)折叠或打开

      Application Options:--databaseNames databaseName to apply. if multiple, seperate by comma(,)--tableNamestableName to apply. if multiple, seperate by comma(,)--start-positionstart position--stop-position stop position--start-datetimestart time (format %Y-%m-%d %H:%M:%S)--stop-datetime stop time (format %Y-%m-%d %H:%M:%S)--sqlTypessql type to filter . support INSERT, UPDATE ,DELETE. if multiple, seperate by comma(,)--maxSplitSizemax file size after split, the uint is M--binlogFileNames binlog files to process. if multiple, seperate by comma(,)--outBinlogFileNameBase output binlog file name base--logLevellog level, available option is debug,warning,error--include-gtids gtids to process--exclude-gtids gtids to skip


    mysql MyFlash使用.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: myflashmysql使用