阿里云數據庫 MySQL 版支持通過物理備份文件和邏輯備份文件兩種途徑將云上數據遷移到本地數據庫。
利用物理備份文件導出
背景信息
因為軟件限制,目前數據恢復只支持在 Linux 系統下進行。如果您要恢復數據到 Windows 系統,可以先將數據恢復到 Linux 系統下,再將數據遷移到 Windows 系統。
前提條件
阿里云數據庫使用開源軟件 Xtrabackup 2.0.6 對 MySQL 數據庫進行全量物理備份。用戶需要下載該軟件,并使用該軟件進行數據恢復。Xtrabackup 官方網站為:http://www.percona.com/,請下載與您操作系統版本對應的 Xtrabackup 版本。
yum -y install epel-release
yum -y install percona-xtrabackup.x86_64
操作步驟
本例以本地服務器為 RHEL6/x64 系統,備份文件存儲路徑為 /home/mysql/ 為例。
下載云數據庫 物理備份文件 并上傳至目標服務器。備份文件獲取方法請參見 下載備份數據。如果目標服務器可以訪問源實例,您也可以使用 wegt "url"
下載備份文件。其中 url 為備份文件下載地址。
RDS備份文件下載完畢后,我們需要對其進行解壓。按照阿里云官方文檔,我們需要下載阿里云專門的腳本進行解壓,而且必須是在linux OS 64bit上使用。
必須說明:RDS的備份文件只能在linux OS上進行的。在windows OS上使用第三方軟件解壓的話,你會發現看不到任何的文件。
下載RDS解壓腳本,使用如下命令:
wget http://oss.aliyuncs.com/aliyunecs/rds_backup_extract.sh
使用RDS解壓腳本,解壓RDS備份文件,如下:
sh rds_backup_extract.sh -f /root/hins1035007_xtra_20160220031920.tar.gz -C /data
解壓完畢后,我們切換到/data目錄下查看RDS備份解壓的文件,如下:
通過上圖,可以很明顯的看出,RDS是通過percona-Xtrabackup進行全量備份的。
RDS解壓完畢后,我們需要修改/data目錄的所有者。如下:
chown mysql:mysql -R /data/
現在我們在/data目錄下創建mysql的配置文件my.cnf,如下:
vim /data/my.cnf
[mysqld]
datadir = /data/
port = 3306
server_id = 3
socket = /data/mysqld.sock
max_allowed_packet=32
log-error = /data/error.log
default-storage-engine=INNODB
my.cnf文件創建完畢后,我們現在來啟動mysql。
注意:RDS備份數據庫中的root用戶是沒有密碼的,而且此時RDS備份數據庫中只有root這一個用戶。
啟動命令如下:
/usr/bin/mysqld_safe –defaults-file=/data/my.cnf &
或者
/etc/init.d/mysql
通過上圖,我們可以很明顯的看出mysql已經正常啟動。現在我們再來測試,是否可以正常連接mysql。如下:
mysql -h127.0.0.1 –uroot -p
現在我們再來創建root用戶密碼,并賦予其連接權限。如下:
use mysql;
update user set password=password(‘123456′) where user=’root’;
update user set host=’%’ where user=’root’ && host=’127.0.0.1′;
flush privileges;
注意:如果不想這么麻煩的話,我們可以直接跳過用戶驗證,使用如下命令:
/usr/bin/mysqld_safe –defaults-file=/data/my.cnf –skip-grant-table&
這樣客戶端在連接時,可以任意用戶名和密碼。
注意:在此有兩點和官方教程不一樣的地方需要說明:
1、沒有安裝percona-Xtrabackup數據恢復軟件進行數據恢復
2、數據庫root用戶是沒有密碼的