阿里云RDS云数据库的物理备份文件恢复到本地Mysql数据库

虽然阿里云RDS数据库有定时全量备份的功能,但我还是在每个星期去页面上下载一份备份文件到本地服务器上,尽量做到异地灾备。。
领导检查数据的备份情况时,希望我把备份下来的数据恢复到本地数据库。果然是实时看得到才安心啊,哈哈。
其实这还是比较简单的,阿里云的帮助文档上也有,但还是在这里记录和分享下吧。

一、环境准备

1.安装本mysql
本地mysql要与RDS数据库所用得版本一致,且本地mysql要安装在64位得linux系统中,官方说暂时不支持在windows系统中恢复。
我的RDS的mysql的版本为5.7,本地就安装一样的版本。

wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar
tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
yum install -y perl-Module-Install.noarch
yum -y install *.rpm
修改mysql配置文件(如有必要的话)
systemctl start mysqld
设置mysql数据库密码: mysql_secure_installation(初始密码:cat /var/log/messages| grep 'temporary password')

2.在mysql服务器上安装备份工具percona-xtrabackup
MySQL 5.6及之前的版本需要安装 Percona XtraBackup 2.3。MySQL 5.7版本需要安装 Percona XtraBackup 2.4,安装方法如下:

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum list | grep percona
yum install percona-xtrabackup-24

3.下载全量备份文件
阿里云RDS云数据库的物理备份文件恢复到本地Mysql数据库_第1张图片
阿里云RDS云数据库的物理备份文件恢复到本地Mysql数据库_第2张图片

二、恢复数据

systemctl stop mysqld #停止mysql服务
mv /var/lib/mysql/ /var/lib/mysqlbak  #备份原先的datadir
mkdir /var/lib/mysql    #新建一个datadir
cd /var/lib/mysql       
rz    #把下载的备份文件上传到此目录中
tar -xvf hins7035787_data_20190521022023.tar   #解压全量备份文件
innobackupex --defaults-file=./backup-my.cnf --apply-log ./   #执行恢复
chown -R  mysql:mysql  /var/lib/mysql  #修改文件属性
systemctl start mysqld  #启动mysql服务

恢复之后,原先RDS上的用户信息还在,可以直接使用之前RDS上创建的用户连接此数据库,并检查数据的完整性。
阿里云RDS云数据库的物理备份文件恢复到本地Mysql数据库_第3张图片

你可能感兴趣的:(阿里云)