• 当mysql数据被误操作删除后,数据恢复的思路。


    MYSQL数据恢复

    当mysql的数据被误操作删除后

    大致有如下几种恢复思路

    一.直接还原

    如果数据库每天都有用mysqldump去备份,那么当数据丢失之后,只需要把sql直接导入数据库即可。

    mysql  -uroot  -ptqw961110  <  backup.sql

    二.通过bin-log还原

    但是遗憾的是,有时候数据库的数据还没来得及备份就被误操作删掉了。那么这时候bin-log就起到很好的作用了。

    bin-log在主从复制上发挥着很重要的作用,主要是记录主库最新的各种操作,并告诉从库,让从库执行同样的操作,从而实现同步复制。

    因此,当数据库数据被误删了,我们可以将bin-log里面的操作给数据库再执行一次。

    在执行还原操作前,要先停止数据库,避免有新的数据写入。

    假如不确定丢失的数据是在什么时段丢失的,建议进行一次全备操作。

    mysqlbinlog --no-defaults -d wordpress mysql-bin.000014 > bin.sql

    把所有的bin-log汇总到bin.sql

    然后把drop语句剔除掉(又或者可以针对误操作的语句进行针对性的搜索,搜索出误操作语句然后剔除掉)

    cat bin.sql | grep -i -v "drop" > bin.sql

    最后把bin-sql导入mysql即可。(操作前注意先把现有的数据进行备份)

    三.如果还原时主库还有数据需要写入不能停库

    方法步骤与第二种方法相似,也需要把bin-log变成sql,剔除drop语句。

    然后把bin-sql导入到从库里面。

    带主库写入数据完毕

    刷新主库bin-log

    将新的bin-log解析成sql导入到从库中。

    然后将服务切换到从库,让从库提供业务。

    但是,无论最后能不能恢复,误操作导致数据丢失的后果还是很严重的。小伙伴们平时一定要注意数据库的操作权限管理。

  • 相关阅读:
    Java Concurrency
    Java Concurrency
    Java Concurrency
    Java Concurrency
    Java Concurrency
    Java Concurrency
    Java Concurrency
    Java Concurrency
    存储的瓶颈(2)
    存储的瓶颈(3)
  • 原文地址:https://www.cnblogs.com/QicongLiang/p/9962281.html
Copyright © 2020-2023  润新知