一.恢复准备
阿里云RDS默认配置了全备份+binlog,可以精准恢复到某个时间点上。
可以下载备份的包到本地,进行本地恢复,要预留好本地的数据库容量和cpu等规格,不然可能启动失败。
二.具体操作
1.点击备份实例,可以立刻进行一次备份,但要考虑负载压力情况,一般情况下不会占用RDS太多资源,选择物理备份,逻辑备份是备份sql。
2.可以下载内网或外网的包
3.如果在服务器内下载,可以用如下命令wget -c '<数据备份文件外网下载地址>' -O mysqldata.tar.gz
4.解压包mkdir data
tar -xf mysqldata.tar.gz -C data/
5.本地部署mysql对应版本并安装xtrabackupyum -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