![4535edb126a20434b753e803391b03cb.png](https://i-blog.csdnimg.cn/blog_migrate/5fda01f2234dc36cf60534e194002470.png)
欢迎转载,但请在开头或结尾注明原文出处【blog.chaosjohn.com】
前言
今年五月下旬的时候,公司某线上数据库遭遇表被删事件,对,没错,就是那种 删库
事件。
不过不是恶意删库事件,是某开发童鞋的不小心,而且他也没有跑路。
在发现表被删的第一时间,我就插手处理(假设表名为 sample
):
- 先把被删的表结构重建起来,先争取线上相关业务接口不再报
502
错误 - 再从阿里云那边下载当日早些时候的完整数据库备份
- 创建本地 MySQL 环境,将被删表从完整备份中恢复到本地
- 等到业务高峰过去后,短暂下线
sample
表相关的服务,即服务降级
- 将线上
sample
表的数据导出到CSV
文件(包含了从删库后重建表开始到服务降级之间的所有数据) - 从
CSV
中合并增量数据到本地sample
表(追加在尾部) - 将线上
sample
表备份后删除,将本地sample
表复制到线上 - 恢复服务 <