一.恢復准備
阿里雲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對應版本並安裝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