轉發:https://www.cnblogs.com/lin1/p/8617764.htmlhtml
轉發:https://help.aliyun.com/knowledge_detail/41817.htmlmysql
1.阿里雲數據庫備份實例,恢復數據的時候須要將數據恢復到本地數據庫,是不能直接恢復到RDS上的。linux
2.須要在本地服務器上下載一個數據庫,儘可能和RDS數據庫版本保持一致。(我如今用的是5.6的版本)sql
3.這裏須要用到xtrabakcup工具進行數據恢復數據庫
1,下載5.6版本的數據庫服務器
cd /usr/local/src/app
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/mysqlhtm
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=/data/mysql/backup-my.cnf --apply-log /data/mysql
出現如上圖,基本數據恢復完成了。
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;