一次血的教训,阿里云rds mysql 数据库,本地化并日志恢复已删除的两天数据
2017-01-25 14:52
721 查看
参考文献:
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文件可通过通配符载入,比如:
*号可将多个文件导入,当然也可以用[123]这种格式
第二,日志恢复相当于将操作回放一遍,如果出现错误建议将本地库删除,重新恢复一份,避免回放两次,得到不可预期结果。
最后,希望能帮到遇到类似问题的同志们。
最后的最后,千万别心存侥幸,以为群里那些成天喊删库的事离我们很远,其实只是一行代码的距离,最终建议,“任何操作之前先备份,任何线上操作都不做!”。
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恢复备份数据到自建数据库
- Mysql的Bin log数据恢复:不小心删除数据库
- mysql删除binlog日志及日志恢复数据的方法
- 通过Mysql的二进制日志恢复数据库数据
- mysql innodb引擎数据库,删除ibdata1文件恢复数据教程
- mysql恢复删除的数据库和自动备份数据
- 如何通过Mysql的二进制日志恢复数据库数据
- mysql删除binlog日志及日志恢复数据
- 如何通过Mysql的二进制日志恢复数据库数据
- mysql删除binlog日志及日志恢复数据的方法
- mysql通过bin-log日志恢复误删除数据
- 如何通过 MySQL 的二进制日志恢复数据库数据
- MYSQL LOGBIN 数据日志恢复数据库随笔
- 如何通过Mysql的二进制日志恢复数据库数据
- 详解如何通过Mysql的二进制日志恢复数据库数据
- 如何通过 MySQL 的二进制日志恢复数据库数据
- RDS恢复数据到本地mysql(阿里云)
- Mysql----阿里数据库(mysql)误删除后的数据恢复
- 8、利用Mysql的二进制日志文件,进行数据库数据的恢复