• ADADADADAD

    【Mysql】闪回--mysqlbinlog flashback 5.6版本[ mysql数据库 ]

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

    作者:文/会员上传

    简介:

    简介DBA或者开发人员,有时会误删除或者误更新数据。传统的数据库恢复方法是利用之前的备份再加上误操作之前的binlog,来恢复数据。该方法需要耗费较长时间来恢复备份,甚至需要

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

    简介

    DBA或者开发人员,有时会误删除或者误更新数据。传统的数据库恢复方法是利用之前的备份再加上误操作之前的binlog,来恢复数据。该方法需要耗费较长时间来恢复备份,甚至需要停机维护,严重降低系统的可用性。

    MySQL的flashback功能是由淘宝的彭立勋,在MySQL-5.5.18的基础上开发的。随着binlog格式的变动和类型的增加,基于5.5.18的版本,无法用于目前主流的5.6版本的。因此平民软件将该功能移植到5.6版本上,让相关人员对数据库有更强的掌控能力。

    使用方法
      定位误操作的binlog位置

    mysqlbinlog -v| grep

    举例

    mysqlbinlog -v --base64-output=decode-rows /var/lib/mysql/128.000110 | grep -B10 -A5 items

    输出类似为

    # at 1093

    #160215 15:22:39 server id 10 end_log_pos 1240 CRC32 0x6146d30e Table_map: `zabbix`.`items` mapped to number 73

    # at 1240

    #160215 15:22:39 server id 10 end_log_pos 1824 CRC32 0xe2d557b8 Update_rows: table id 73 flags: STMT_END_F

    '/*!*/;

    ### UPDATE `zabbix`.`items`

    ### WHERE

    ### @1=24138

    ### @2=0

    ### @3=''

    ### @4=''

    ### @5=10106

      确认相关位置

    假设找到相关位置,开始位置1017,结束位置2563

    mysqlbinlog -v --base64-output=decode-rows --start-position=1017 --stop-position=2563 /var/lib/mysql/128.000110


    2. 使用平民软件提供的flashback软件

    mysqlbinlog -B -v --start-position=1017 --stop-position=2563 /var/lib/mysql/128.000110 | mysql -u -p

    注意:恢复之前先在不使用的从机上做测试,测试成功后,再在主库上做。

    限制

    该软件利用binlog中记录了操作前的数据镜像和操作后的数据镜像。有如下限制

    1) binlog_format=row

    2) 只支持insert、update、delete

    3) 不支持drop 、truncate、alter等ddl语句

    结论

    flashback功能,可以在紧急情况下,避免用户漫长的数据库恢复过程。让高可用提升一个级别。
    下载地址:http://pan.baidu.com/s/1hrEG9BA


    原文地址:http://www.cnblogs.com/youge-OneSQL/p/5249736.html

    【Mysql】闪回--mysqlbinlog flashback 5.6版本.docx

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

    推荐度:

    下载