美文网首页数据蛙数据分析每周作业
【MySQL学习】No.5 误删数据

【MySQL学习】No.5 误删数据

作者: LL_路上 | 来源:发表于2019-03-17 16:49 被阅读10次

    MySQL 中误删数据主要以下几种:

    - 使用 delete 语句误删数据行;

    - 使用 drop table 或者 truncate table 语句误删数据表;

    - 使用 drop database 语句误删数据库;

    - 使用 rm 命令误删整个 MySQL 实例。

    # 误删行

    使用 delete 语句误删了数据行,可以用 Flashback 工具通过闪回把数据恢复回来。

    Flashback 恢复数据的原理,是修改 binlog 的内容,拿回原库重放。而能够使用这个方案的前提是,需要确保 binlog_format=row 和 binlog_row_image=FULL。

    # 误删库 / 表

    这种情况下,要想恢复数据,就需要使用全量备份,加增量日志的方式了。这个方案要求线上有定期的全量备份,并且实时备份 binlog。

    在这两个条件都具备的情况下,假如有人中午 12 点误删了一个库,恢复数据的流程如下:

    - 取最近一次全量备份,假设这个库是一天一备,上次备份是当天 0 点;

    - 用备份恢复出一个临时库;

    - 从日志备份里面,取出凌晨 0 点之后的日志;

    - 把这些日志,除了误删除数据的语句外,全部应用到临时库。

    # 预防误删库 / 表的方法

    虽然常在河边走,很难不湿鞋,但终究还是可以找到一些方法来避免的。

    第一条建议是,账号分离,避免写错命令。

    第二条建议是,制定操作规范。这样做的目的,是避免写错要删除的表名。

    相关文章

      网友评论

        本文标题:【MySQL学习】No.5 误删数据

        本文链接:https://www.haomeiwen.com/subject/evvumqtx.html