恢复阿里云RDS数据

前续

误删数据库的小朋友们,来看看这个帖子
工具:
1、 Percona XtraBackup
2、 Mysql binlog
限制条件:
Percona XtraBackup只能使用在Linux系统中

步骤

使用Percona XtraBackup恢复之前保存的文件

1、  去阿里的数据恢复下载db备份文件,例如:backup.tar.gz

这里写图片描述
2、 下载阿里的 rds_backup_extract.sh (https://help.aliyun.com/knowledge_detail/41817.html
3、 解压 步骤1 下载的内容(backup.tar.gz)

bash rds_backup_extract.sh -f backup.tar.gz(下载的文件) -C /home/mysql/data(解压目录)

4、 恢复数据

innobackupex --defaults-file=/home/mysql/data/backup-my.cnf (配置文件) --apply-log /home/mysql/data (回滚日志)

5、 修改配置文件准备启动db
删除/home/mysql/data/backup-my.cnf下的

#innodb_fast_checksum
#innodb_page_size
#innodb_log_block_size

6、 启动db,启动过程中注意观察log,部分配置不适合当前的mysql版本

mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &

7、 登录db

mysql -uroot

8、 创建用户前需要执行的命令

delete from mysql.db where user<>’root’ and char_length(user)>0;delete from mysql.tables_priv where user<>’root’ and char_length(user)>0;flush privileges;

使用mysql binlog恢复数据

1、下载binlog文件
2、通过mysqlbinlog恢复执行sql

mysqlbinlog -d badge(恢复db名) --skip-gtids=true D:\log\mysql-bin.000907 >  test3

3、 打开test3分析数据

  • 开始事物的时间:
SET TIMESTAMP=1350355892/*!*/;

BEGIN
  • sqlevent起点

#at 1643330 :为事件的起点,是以1643330字节开始。

  • sqlevent 发生的时间点

#121016 10:51:32:是事件发生的时间,

  • serverId

server id 1 :为master 的serverId

  • sqlevent终点及花费时间,错误码

end_log_pos 1643885:为事件的终点,是以1643885 字节结束。
4、 根据事务开始时间或者at选择开始恢复点,根据end_log_post选择结束点执行命令

mysqlbinlog -d badge --stop-datetime="2017-08-01 01:31:00"(开始时间) --stop-position=234871(结束点) --start-position=1382(开始点) --skip-gtids=true(去除gtid) D:\xiaohui\log\mysql-bin.000907 >  test3

5、 恢复binlog到db中

mysql -uroot 
use badge
source test3

相关知识:
show binary logs; –查看本机的binlog
show binlog events bin-log.0001(log名); –查看本机binlog内容

文档出处https://help.aliyun.com/knowledge_detail/41817.html

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页