一次误删除mysql数据表的历险记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38113129/article/details/78178609
首选介绍我一下数据库的组织架构:一台主数据库,三台从库, 三台从库 都是跟主库负责同步。在一次为主库进行维护的时候将一张重要的表中一个月的数据通过delete命令删除,该数据表的引擎是myisam,当删除完时,突然发现删除的表不对,不是自己想要删除的那张表,导致误删除其中一张重要的表,当时命令在主库执行完,发现不对,立刻登录从库服务器,运行命令slave stop想停掉主从复制,但是发现还是晚了一步,从库已经完成了与主库的同步,也就是从库的数据也被删除了,当时傻眼了,这如何解决,由于打开的binlog日志是循环记录,无法通过日志来恢复这表中一个月的数据,这如果如何解决。
在网上搜索了相关资料,好像只有引擎是innodb还有点希望,innodb的引擎删除表的数据只是加标志,并不是真正的将数据删除。 myisam引擎,也不是将数据删除,但是会将一条记录的前面几个字段都置位了,所以大家可以通过实验delete一张表,该表占用的空间并没有减少。但是要通过myisam的myd表来恢复数据,需要专业的公司来操作,只能保证90%的成功率,而且价格不菲。面对这情况如何是好,在想了很久之后,登录到阿里云的WEB管理后台,由于我的服务器是阿里云的,所以经常登录到管理后台查看服务器的一些状态。
登录进去之后,在无意中发现了一个东西,就是阿里云的管理后台为每块磁盘做了快照,是每天夜里空闲的时候做快照,发现这个东西突然眼前一亮,是否可以通过磁盘的快照将删除的数据找回来,立刻开始实施,在阿里云后台重新买了磁盘,创建磁盘可以选择使用已有快照,我就选择了那个被删除数据的磁盘的快照,作为新磁盘的数据,买完之后,选择的快照数据恢复到新买的磁盘上。
接下来就是将快照恢复后的数据盘挂载到系统上,进去一看数据都在,立刻悬着的心放下,重新安装了一个mysql,并将快照恢复后的数据盘,作为新装mysql的data目录, 启动mysql之后,进入mysql发现数据都在,只是数据只道当天夜里5点,相差了10个小时的数据,虽然相差10个小时数据,但是已经将损失减到最小。
最后告诫一定要做好数据库的增量备份,如果没有做,但是你的服务器是阿里云的,就有可能将数据找回。

猜你喜欢

转载自blog.csdn.net/m0_38113129/article/details/78178609