阿里雲 RDS備份文件恢復到本地數據庫


https://help.aliyun.com/knowledge_detail/5973700.html?spm=5176.2020520104.0.0.Hsg0h9

RDS備份文件恢復到自建數據庫

一、概述與軟件說明

1.1、概述

RDS MySQL 使用開源軟件 percona-Xtrabackup  MySQL 數據庫進行備份。需要下載該軟件,然后使用該軟件進行恢復。

1.2、軟件說明

解壓軟件

RDS的備份文件是一個壓縮包,需要先解壓出來,才能恢復,這里下載解壓工具 rds_backup_extract (sh文件),目前只支持64linux系統。

 

軟件使用方式 sh rds_backup_extract -f backup.tar.gz/back.xb.gz  -C directory

-f 參數后面跟要解壓的備份集文件

-C 參數后面跟要解壓到的目錄,-C 參數是可選的,如果不指定就解壓到當前目錄,如 sh rds_backup_extract -f backup.tar.gz

注:需要通過 bash 來執行 rds_backup_extract 腳本文件。

 

恢復軟件

恢復軟件請下載官方的 Percona-XtraBackup【下載地址:https://www.percona.com/downloads/XtraBackup/】,官方提供各種平台的安裝包,請根據自己的需要下載。RDS 備份使用的版本是 2.2.9,建議您下載 2.2.9 或更新的版本使用。想要了解工具原理的可以參考官方文檔

 

安裝percona-Xtrabackup

下載軟件https://www.percona.com/downloads/XtraBackup/

 rpm -ivh percona-xtrabackup-24-2.4.5-1.el7.x86_64.rpm –nodeps

注意:檢查 vim /etc/my.cnf    如圖確保存在[client] 及指定目錄 socket=/var/lib/mysql/mysql.sock

 

二、恢復數據

2.1、管理控制台中下載備份文件

RDS控制台中的備份與恢復->備份列表,選擇一個備份文件進行下載,如下圖

下載文件成功后,將備份文件上傳至linux系統,上傳成功后在Linux系統上檢測,如下圖:

 

2.2、解壓備份文件

解壓備份文件前,要先下載好解壓工具 rds_backup_extract

解壓備份文件

執行命令:sh rds_backup_extract.sh -f /home/mysql/backup/hins575175_xtra_20150429091224.tar.gz -C /home/mysql/data 如下圖:

查詢解壓后生成的文件,其中藍色字體的目錄文件為備份生成時RDS存在的數據庫

 

2.3、恢復數據文件

解壓備份文件前,要先安裝好 [Percona-XtraBackup]

( http://www.percona.com/downloads/XtraBackup/) 工具。

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

 

這一步最后如果看到類似如下輸出,顯示 completed OK,表示執行成功:

 

2.4、配置文件修改

由於存在的版本問題,請將解壓文件backup-my.cnf中的innodb_fast_checksuminnodb_page_size innodb_log_block_size 注釋掉,如下圖:

 

2.5、修改文件屬主

執行chown -R mysql:mysql /home/mysql/data ,並檢查文件所屬為mysql用戶

 

2.6、啟動mysqld進程並且登錄驗證

啟動mysqld進程,並驗證啟動成功

mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &

 

客戶端登錄mysql驗證

 

 注意:

 1、恢復完成后,mysql.user中是不包含rds中的用戶的;需要新建;

 2、新建用戶前請執行如下sql:

 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;

 即可.

 

三、其他問題

因為軟件限制,目前恢復只支持Linux下進行。Linux下恢復的數據文件,無論WindowsLinux下,MySQL都可以正常使用.

 

GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;

FLUSH PRIVILEGES;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM