阿里云RDS备份 恢复到本地

时间:2022-01-28 06:27:00

一.恢复准备

阿里云RDS默认配置了全备份+binlog,可以精准恢复到某个时间点上。

可以下载备份的包到本地,进行本地恢复,要预留好本地的数据库容量和cpu等规格,不然可能启动失败。

二.具体操作

1.点击备份实例,可以立刻进行一次备份,但要考虑负载压力情况,一般情况下不会占用RDS太多资源,选择物理备份,逻辑备份是备份sql。

阿里云RDS备份 恢复到本地

2.可以下载内网或外网的包

阿里云RDS备份 恢复到本地

3.如果在服务器内下载,可以用如下命令

wget -c '<数据备份文件外网下载地址>' -O mysqldata.tar.gz

4.解压包

mkdir data

tar -xf mysqldata.tar.gz -C data/

5.本地部署mysql对应版本并安装xtrabackup

yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libev-devel

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm

rpm -ivh install percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm

6.假如mysql安装在/usr/local/mysql中,先关闭mysql备份data库,再进行整体恢复

systemctl stop mysql

rm -rf /usr/local/mysql/data

mkdir /usr/local/mysql/data

利用--apply-log来将备份时候有些未同步或者提交的事物进行处理,达到一致性状态

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log /root/data/

用如下命令恢复

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --copy-back /root/data/

7.恢复权限并启动,恢复后包括账号密码都是等同于备份库的

chown -R mysql:mysql /usr/local/mysql/data

systemctl start mysql