阿里云rds数据备份恢复

由于阿里云rds数据库备份的是物理备份,这个备份恢复,阿里云官方恢复是需要重新购买数据库才能恢复。下边介绍下如何恢复数据。

1.阿里云数据库备份实例,恢复数据的时候需要将数据恢复到本地数据库,是不能直接恢复到RDS上的。

2.需要在本地服务器上下载一个数据库,尽量和RDS数据库版本保持一致。(我现在用的是5.6的版本)

3.这里需要用到xtrabakcup工具进行数据恢复

1,下载5.6版本的数据库

cd /usr/local/src/

wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

2,解压

mv /us/local/src/mysql-5.6.36-linux-glibc2.5-x86_64  /usr/local/mysql

3,创建数据库用户

useradd -s /sbin/nologin mysql

3,安装xtrabakcup工具

获取yum源

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

安装xtrabackup需要依赖其他包(这里用的是阿里云的epel源)

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

安装工具

yum install percona-xtrabackup

4,登录到阿里云的RDS控制台,点击复制外网。

5,下载数据备份文件

wget -c '外网地址' -O /usr/local/src/db.tar.gz

(如果你用的是虚拟机,可能无法解析改外网地址。加个114的dns即可)

6,将下载的数据备份恢复到本地MySQL数据库中

a,首先下载一个脚本

wget  http://oss.aliyuncs.com/aliyunecs/rds_backup_extract.sh

chmod a+x rds_backup.sh

b,解压数据文件

mkdir -p /data/mysql

执行命令解压数据文件

./rds_backup.sh -f <数据备份文件名>.tar.gz -C /data/mysql

c,恢复解压好的备份文件

innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data

7,修改数据库文件属性

chown -R mysql:mysql /data/mysql

8,为防止数据库版本问题,还是需要修改/data/mysql/backup-my.cnf的配置文件,将如下配置注释掉。

9,启动数据库

/usr/local/mysql/bin/mysqld_safe  --defaults-file=/data/mysql/backup-my.cnf --user=mysql --datadir=/data/mysql &

10,登录数据库

/usr/local/mysql/bin/mysql -uroot

上面基本完成数据的恢复。考虑到恢复完成后,表mysql.user中不包含在RDS实例中创建的用户,需要新建。在新建用户前,执行如下命令

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;

 

你可能感兴趣的:(阿里云rds数据备份恢复)