「RDS」华为云 RDS 恢复误删MySQL数据恢复流程

背景

本文是记录 2021年4月25日云数据恢复操作

大致流程是通过 binlog 恢复 mysql 中的数据,我们购买的是华为云 RDS,所以直接在 RDS 进行操作。

RDS 它的恢复流程是会先将数据全量恢复到 指定日期,再重放 binlog 操作到指定时间点。

过程

  1. 登录华为云服务器管理后台

  2. 在「关注资源」(或者左边菜单栏) - 选中 「云数据库 RDS」

  3. 在 RDS 控制台中选中 「备份管理」,下载两个备份数据。一个是今天0425日的(是我服务器停机后手动备份的,时间点为:2021/04/25 14:57:39), 一个是昨日RDS 自动备份的(时间点为2021/04/24 20:51:38)

  4. 在 RDS 控制台中选中「数据库管理服务(DAS)」,此时会新打开一个 DAS窗口

  5. 在 DAS 控制台菜单中选中「开发工具」,点击实例名称,如rds-001(192.168.10.20

  6. 在上菜单栏中选择「binlog」标签 => 「归档日志」-「起止时间」- 输入具体日期,如 2021/04/24 21:30:00 到 2021/04/24 23:59:59

  7. 点击解析日志,再点查看日志详细内容,找到我们具体注释操作(动作描述为数据表 xxx 发生 DDL 操作)的具体时间(变更时间), 举个例子为 22 点整,我们记录下来,届时要回滚的操作就是要指定到这个**#时间点#**

  8. 回到 RDS 窗口,在 RDS 控制台中选中 「实例管理」,点击实例的名称 - 如rds -001 296ce7f544bd4e889d2e38b934bf80cain01 进入到具体实例的详情中

  9. 在左侧菜单选择「备份恢复」,选择 「binlog备份」标签

  10. 「恢复到指定时间点」是指整个库一起恢复,「表级时间点恢复」可以勾选具体表来进行恢复,我们依据需求进行选择,时间点设置到我们进行 DDL操作前的 #时间点#,然后进行恢复

  11. 恢复后我们要恢复对误操作时间点之后的系统操作(即普通用户操作),有两种方法,一种是直接比对时间点后的数据(如根据时间去查询数据,然后比对两份数据),另外一种是在 DAS 中解析 binlog,依据日志对数据重新进行设置值,直至最终恢复完毕