开发者社区> idealities> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

手动恢复RDS MySQL数据库

简介: 有时难免需要恢复数据库到之前某个制定时间点(例如由于SQL误操作并且已经commit导致)。在阿里云控制台,RDS有两种恢复方法,一种是覆盖性恢复,可以为理解通过全量备份覆盖当前数据库,只能选取某个全量备份进行操作;一种是通过创建临时库,可以制定近7天内任意时间点。显然,选择后者相对能将影响降到最.
+关注继续查看

有时难免需要恢复数据库到之前某个制定时间点(例如由于SQL误操作并且已经commit导致)。在阿里云控制台,RDS有两种恢复方法,一种是覆盖性恢复,可以为理解通过全量备份覆盖当前数据库,只能选取某个全量备份进行操作;一种是通过创建临时库,可以指定近7天内任意时间点。显然,选择后者相对能将影响降到最低。但是假如由于不靠谱的操作或者其他原因选择了前者,一旦覆盖恢复完成,则不能再创建覆盖性恢复之前时间点的临时库了。本文仅讨论操作了覆盖性恢复,如何尽量再找回一个最接近误操作时间点的数据库。

参考这个文档,首先要把最近的正常的全量备份下载下来,然后是在备份时间点之后的所有binlog增量。最后的一个binlog增量,其中会混合了正常的操作和误操作。

按照文档,先通过rds_backup_extract解压全量备份文件。再通过innobackupex恢复数据文件。然后修改backup-my.cnf,这个文档已经偏旧,实际上你应该只保留如下图的中间那几行就可以。

images70

然后再根据RDS控制台显示的数据库版本,去下载一个版本号大于等于该版本的MySQL。可以从国内开源镜像下载,不然会比较尴尬。由于是临时使用,随便指向一个目录用完可以删了。

$ mkdir build && cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/tmp/mysql
$ make && make install

之后把/path/to/tmp/mysql/bin临时加到PATH环境变量,放在最前面。

然后就可以启动这个数据库了。

$ mysqld_safe --defaults-file=/path/to/mysqldata/backup-my.cnf --datadir=/path/to/mysqldata

先用客户端连接看看是否正常。如果启动之后异常推出,看看错误日志,一般都能解决。

然后就可以挨个执行那些binlog文件了,当然前面说到的那个混合了正常的操作和误操作的binlog除外。

$ mysqlbinlog mysql-bin.xxxxxx | mysql -uroot --force

如果是5.6开启了GTID,可能会遇到关于GTID的报错。有两个解决办法:

  • 1 修改启动参数,改为如下:
$ mysqld_safe --defaults-file=/path/to/mysqldata/backup-my.cnf --datadir=/path/to/mysqldata --log-bin --log-slave-updates --gtid-mode=ON --enforce-gtid-consistency --binlog_format=row
  • 2 mysqlbinlog加上--skip-gtids参数。

最后,针对那个混合了正常的操作和误操作,先用mysqlbinlog将其转换成文本文件,找到最后的正常事务的时间点,可以通过head -c把正常的部分切割出来,然后手工编辑下,使其格式完整,再重放执行这个binlog。

这样基本能拿到一个最接近误操作时刻的完整数据库了。

更多精彩活动:【有“福”同享.第二季】每日一分享,虚机邮箱免费用

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
学习报告-动手实战-最佳应用实践之使用RDS MySQL和ECS搭建个人博客
- ECS真实操作环境 - Wordpress安装及部署 - Wordpress
188 0
动手实战-最佳应用实践之使用RDS MySQL和ECS搭建个人博客
场景体验完成,简单描述以下实验过程,可以看到wordpress安装配置非常简单。
88 0
【RDS MySQL】投递RDS MySQL日志到日志服务
RDS MySQL的日志可以通过多种日志采集方式投递到日志服务中统一管理,本文介绍RDS MySQL日志的采集方法以及字段说明。
115 0
+关注
idealities
https://github.com/ideal
14
文章
66
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载