恢复阿里云RDS数据

xiaoxiao2021-02-28  88

前续

误删数据库的小朋友们,来看看这个帖子 工具: 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

转载请注明原文地址: https://www.6miu.com/read-46559.html

最新回复(0)