一次血的教训,阿里云rds mysql 数据库,本地化并日志恢复已删除的两天数据
来源:互联网 发布:学生请假软件 编辑:程序博客网 时间:2024/04/30 09:56
参考文献:
https://help.aliyun.com/knowledge_detail/41817.html
https://help.aliyun.com/knowledge_detail/41738.html
案例背景,本人勿删公司线上数据库用户表(阿里去rds mysql),情急之下,将其恢复至最近备份(两天前,阿里云自动备份策略),恢复完后的第二天发现,备份与删库期间有些数据是重要且有用的,于是领导强烈希望能恢复期间数据,以减少公司损失,个人也怀有惭愧之心,于是尽力恢复。
假设数据时间线:1月1日12:30:00(阿里云自动备份最近时间)1月3日14:54:33(删除数据表)大概10分钟内恢复到,1月1日12:30:00数据,数据恢复后第二天(1月4日),希望恢复1月1日12:30:00至1月3日14:54:33时间的增量数据。
一、阿里云备份数据恢复到本地
提交工单并得到回复无法恢复(顺便吐槽下阿里云服务一日不如一日),于是想到虽一照常保存下来的是日志(binlog),而且有印象可以通过日志恢复数据,于是查了相关文章,得知,欲通过日志恢复有几个条件,第一是有开启binlog日志功能,二是有一个开启日志后的备份,很庆幸,这两点阿里云rds都具备。具体下载及本地数据恢复可参考RDS for MySQL 备份文件恢复到自建数据库
恢复数据遇到的问题:
Percona-XtraBackup 工具的安装 官网 其余根据文档将 1月1日12:30:00(阿里云自动备份最近时间)的数据库备份恢复到本地。
二、通过日志恢复增量数据
RDS for MySQL 本地时间点恢复
根据以上文档基本可以,将两天的增量恢复,其中有几点注意的说明下,第一,多个binlog文件可通过通配符载入,比如:
mysqlbinlog mysql-bin.00068* --start-position=531167 --stop-datetime="16-05-16 18:05:03" | mysql -uroot -pyour_password -P3306 -hyour_host_ip
*号可将多个文件导入,当然也可以用[123]这种格式第二,日志恢复相当于将操作回放一遍,如果出现错误建议将本地库删除,重新恢复一份,避免回放两次,得到不可预期结果。
最后,希望能帮到遇到类似问题的同志们。
最后的最后,千万别心存侥幸,以为群里那些成天喊删库的事离我们很远,其实只是一行代码的距离,最终建议,“任何操作之前先备份,任何线上操作都不做!”。
- 一次血的教训,阿里云rds mysql 数据库,本地化并日志恢复已删除的两天数据
- 记一次从阿里云的rds恢复备份数据到自建数据库
- 阿里云RDS数据恢复到本地MySQL数据库
- 恢复阿里云RDS数据
- 阿里RDS一次数据异常的定位过程
- 试用阿里云的RDS数据库
- 阿里云RDS数据本地恢复
- Mysql----阿里数据库(mysql)误删除后的数据恢复
- Oracle恢复删除并已提交的数据
- Mysql数据库删除表的数据恢复
- mysql数据库数据的删除与恢复
- mysql删除binlog日志及日志恢复数据的方法
- 基于阿里云RDS数据误删除的回滚方案
- 阿里云RDS的mysql数据库占用空间超过90%的处理
- 阿里云数据库 RDS MySQL 空间问题的原因和解决
- 阿里云rds mysql数据设置字符集为utf8mb4,支持ios的emoji
- 一次血的教训
- 【Cherry云计算】RDS - 阿里云数据库的概要介绍
- ACL权限
- linux各种系统文件详解(sysctl.conf)
- json深复制与浅复制
- use tools:overrideLibrary="xxx.xxx.xxxr" to force usage 问题分析。
- 洛谷 P1345 [USACO5.4]奶牛的电信Telecowmunication
- 一次血的教训,阿里云rds mysql 数据库,本地化并日志恢复已删除的两天数据
- Volley之简单封装(1)
- LightOJ-1364 Expected Cards(期望dp)
- 使用OD从零开始Cracking
- Codeforces Round #393 Pavel and barbecue
- Mac使用Cocos2.2.6的最低配置
- 使用BOOL变量犯过的错误
- 【t084】数列
- 算法之路二:刘汝佳算法竞赛入门经典:c++结构体