爛泥:阿里雲RDS本地恢復數據 -开发者知识库

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,第1张

本文由ilanniweb提供友情贊助,首發於爛泥行天下

想要獲得更多的文章,可以關注我的微信ilanniweb

公司目前使用的數據庫是阿里雲的RDS,目前RDS的版本為mysql5.6。如下:

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image001,第2张

現在要求把RDS的數據,在公司內部本地進行恢復。

如何把RDS在本地進行恢復呢?這個阿里雲官網給出了相關的操作教程,連接如下:《RDS備份文件恢復到自建數據庫》。

看了官網的教程,感覺很是麻煩,而且也有幾個比較特殊的地方沒有點出來,下面是我對RDS本地恢復的步驟。

一、安裝mysql數據庫

在進行RDS本地恢復數據之前,我們需要先在本地服務器上安裝mysql的5.6版本,因為RDS是5.6版本,所以我們本地的mysql數據庫要與RDS版本對應。

rpm -ivh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm && yum -y install mysql-server mysql

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image002,第3张

mysql數據庫安裝完畢后,我們現在來下載RDS備份。

二、下載RDS備份

RDS本身是有備份,而且是可以在RDS的管理后台自定義備份策略,如下:

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image003,第4张

我們可以在RDS備份列表中下載已經備份好的RDS文件,如下:

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image004,第5张

通過上圖,我們可以很明顯的看到RDS的備份是全量備份的,而且是物理備份的。

三、解壓RDS備份文件

RDS備份文件下載完畢后,我們需要對其進行解壓。按照阿里雲官方文檔,我們需要下載阿里雲專門的腳本進行解壓,而且必須是在linux OS 64bit上使用。

必須說明:RDS的備份文件只能在linux OS上進行的。在windows OS上使用第三方軟件解壓的話,你會發現看不到任何的文件。

下載RDS解壓腳本,使用如下命令:

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

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image005,第6张

使用RDS解壓腳本,解壓RDS備份文件,如下:

sh rds_backup_extract.sh -f /root/hins1035007_xtra_20160220031920.tar.gz -C /data

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image006,第7张

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image007,第8张

解壓完畢后,我們切換到/data目錄下查看RDS備份解壓的文件,如下:

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image008,第9张

通過上圖,可以很明顯的看出,RDS是通過percona-Xtrabackup進行全量備份的。

四、修改/data目錄的所有者

RDS解壓完畢后,我們需要修改/data目錄的所有者。如下:

chown mysql:mysql -R /data/

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image009,第10张

五、修改my.cnf配置文件

現在我們在/data目錄下創建mysql的配置文件my.cnf,如下:

vim /data/my.cnf

[mysqld]

datadir = /data/

port = 3306

server_id = 3

socket = /data/mysqld.sock

max_allowed_packet=32M

log-error = /data/error.log

default-storage-engine=INNODB

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image010,第11张

六、啟動mysql並操作

my.cnf文件創建完畢后,我們現在來啟動mysql。

注意:RDS備份數據庫中的root用戶是沒有密碼的,而且此時RDS備份數據庫中只有root這一個用戶。

啟動命令如下:

/usr/bin/mysqld_safe --defaults-file=/data/my.cnf &

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image011,第12张

注意:在此mysql啟動命令,是根據mysql多實例進行的,可以查看《爛泥:mysql5.5多實例部署》。

通過上圖,我們可以很明顯的看出mysql已經正常啟動。現在我們再來測試,是否可以正常連接mysql。如下:

mysql -h127.0.0.1 –uroot -p

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image012,第13张

通過上圖,我們可以很明顯的看出mysql是可以正常連接的。

現在我們再來創建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;

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image013,第14张

對mysql操作完畢后,我們現在來測試mysql客戶端。

七、客戶端連接mysql

mysql正常啟動后,我們現在通過客戶端連接數據庫。如下:

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image014,第15张

爛泥:阿里雲RDS本地恢復數據 -开发者知识库,clip_image015,第16张

通過上圖,我們可以很明顯的看到RDS數據庫已經在本地正常恢復了。

注意:在此有兩點和官方教程不一樣的地方需要說明:

1、沒有安裝percona-Xtrabackup數據恢復軟件進行數據恢復

2、數據庫root用戶是沒有密碼的

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复