1. 程式人生 > >阿裏雲RDS恢復數據到本地上

阿裏雲RDS恢復數據到本地上

註意 init tar 壓縮 roo end adb 指定 size 當前目錄

1、先從RDS下載實例備份到本地

技術分享圖片

下載外網和內網根據你實際的需求環境來。同個內網服務器下載就少點下載流量花費。

技術分享圖片

2、解壓備份文件
執行如下命令,下載數據備份文件。

wget -c ‘<數據備份文件外網下載地址>‘ -O <自定義文件名>.tar.gz
參數說明:

-c:啟用斷點續傳模式。

-O:將下載的結果保存為指定的文件(使用URL中包含的文件名後綴 .tar.gz 或者 .xb.gz)。

說明:若提示顯示100%進度,則表示文件下載完成。

將下載的數據備份恢復到本地MySQL數據庫中,具體操作步驟如下。

執行如下命令,解壓已下載的數據備份文件。

說明:本文以自定義路徑/data/mysql/data/為例,您可以根據實際情況將其替換成實際路徑。

目前備份集文件有2種格式,一種是 tar 壓縮包 (.tar.gz 後綴),一種是 xbstream 壓縮包 (.xb.gz後綴)

對於 tar 壓縮包(.tar.gz),使用命令:

tar -izxvf <數據備份文件名>.tar.gz -C /data/mysql/data/

對於 xbstream 壓縮包(.xb.gz),使用命令:

gzip -d -c <數據備份文件名>.xb.gz | xbstream -x -v -C /data/mysql/data/

參數說明:

-C:指定文件要解壓到的目錄。可選參數,若不指定就解壓到當前目錄。
執行如下命令,查詢解壓後生成的文件。

ls -l /data/mysql/data/

命令執行成功後,系統會返回如下結果,其中藍色字體為生成備份文件時RDS實例所包含的數據庫。
技術分享圖片

執行如下命令,恢復解壓好的備份文件。

innobackupex --defaults-file=/data/mysql/data/backup-my.cnf --apply-log /data/mysql/data
若系統返回如下類似結果,則說明備份文件已成功恢復到本地數據庫。
技術分享圖片
恢復成功

註意: 一定要用--apply-log ,不同環境恢復過去的要用apple-log, 之前我直接用--copy-back ,雖然啟動了,但是報了很多redo log錯誤。 用了--apply-log 後就不報redo log 錯誤了
報錯如:技術分享圖片

3、相關參數加入到my.cnf並啟動MySQL操作
把/data/mysql/data/裏的backup-my.cnf
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=1572864000
三項參數內容添加到/etc/my.cnf 下
技術分享圖片

執行如下命令,修改文件屬主,並確定文件所屬為MySQL用戶。

chown -R mysql:mysql /data/mysql/data
執行如下命令,啟動MySQL進程。
/etc/init.d/mysqld start

進入數據庫
mysql -uroot -p

密碼是你轉的數據庫的賬號密碼

若不知道密碼需要跳過密碼可以用 skip-grant-tables 添加在[mysqld]下,重啟MySQL進去更改密碼
update user set password=password(‘111111‘) where user=‘root‘ ;

更改完畢,記得註釋掉skip-grant-tables,重啟MySQL。

阿裏雲RDS恢復數據到本地上