背景
本文是记录 2021年4月25日云数据恢复操作
大致流程是通过 binlog 恢复 mysql 中的数据,我们购买的是华为云 RDS,所以直接在 RDS 进行操作。
RDS 它的恢复流程是会先将数据全量恢复到 指定日期,再重放 binlog 操作到指定时间点。
过程
登录华为云服务器管理后台
在「关注资源」(或者左边菜单栏) - 选中 「云数据库 RDS」
在 RDS 控制台中选中 「备份管理」,下载两个备份数据。一个是今天0425日的(是我服务器停机后手动备份的,时间点为:2021/04/25 14:57:39), 一个是昨日RDS 自动备份的(时间点为2021/04/24 20:51:38)
在 RDS 控制台中选中「数据库管理服务(DAS)」,此时会新打开一个 DAS窗口
在 DAS 控制台菜单中选中「开发工具」,点击实例名称,如rds-001(192.168.10.20
在上菜单栏中选择「binlog」标签 => 「归档日志」-「起止时间」- 输入具体日期,如 2021/04/24 21:30:00 到 2021/04/24 23:59:59
点击解析日志,再点查看日志详细内容,找到我们具体注释操作(动作描述为数据表 xxx 发生 DDL 操作)的具体时间(变更时间), 举个例子为 22 点整,我们记录下来,届时要回滚的操作就是要指定到这个**#时间点#**
回到 RDS 窗口,在 RDS 控制台中选中 「实例管理」,点击实例的名称 - 如rds -001 296ce7f544bd4e889d2e38b934bf80cain01 进入到具体实例的详情中
在左侧菜单选择「备份恢复」,选择 「binlog备份」标签
「恢复到指定时间点」是指整个库一起恢复,「表级时间点恢复」可以勾选具体表来进行恢复,我们依据需求进行选择,时间点设置到我们进行 DDL操作前的 #时间点#,然后进行恢复
恢复后我们要恢复对误操作时间点之后的系统操作(即普通用户操作),有两种方法,一种是直接比对时间点后的数据(如根据时间去查询数据,然后比对两份数据),另外一种是在 DAS 中解析 binlog,依据日志对数据重新进行设置值,直至最终恢复完毕


