1. 程式人生 > >1028阿裏RDS如何恢復雲數據庫MySQL的備份文件到自建數據庫

1028阿裏RDS如何恢復雲數據庫MySQL的備份文件到自建數據庫

數據 輸入 -o 使用 esc 工具 本地 註釋 linu

參照 https://help.aliyun.com/knowledge_detail/41817.html

恢復雲數據庫MySQL的備份文件到自建數據庫

更新時間:2017-07-27 14:52:13

雲數據庫MySQL版使用開源軟件Percona Xtrabackup對數據庫進行備份,所以您可以使用該軟件將雲數據庫MySQL的備份文件恢復到自建數據庫中,本文將介紹詳細的操作步驟。

關於雲數據庫MySQL版如何備份數據,請參見備份RDS數據。

前提條件

  • 本地MySQL數據庫安裝在64位的Linux系統中,且與雲數據庫MySQL版的版本相同。

    說明:由於軟件限制,目前只支持將雲數據庫MySQL的備份文件恢復到安裝在Linux系統中的自建MySQL數據庫中。但在Linux下恢復的數據文件,可以在Windows和Linux操作系統中正常使用。

  • 操作系統中已安裝數據恢復工具Percona XtraBackup 2.2.9或以上版本。若未安裝,請從Percona XtraBackup官網下載,安裝指導請參見官方文檔。

  • 操作系統中已安裝數據備份文件解壓工具rds_backup_extract.sh。若未安裝,請點擊下載。

操作步驟

  1. 獲取數據備份文件下載地址,具體操作步驟如下。

    1. 登錄RDS管理控制臺。

    2. 選擇目標實例所在地域。

    3. 單擊目標實例的ID,進入基本信息頁面。

    4. 在左側導航欄中,選擇備份恢復,進入備份恢復頁面。

    5. 選擇數據備份標簽頁。

    6. 選擇查詢的時間範圍,然後單擊查詢

    7. 在數據備份列表中,找到要下載的數據備份,並單擊其對應的下載

      ,如下圖所示。

      技術分享

    8. 實例備份文件下載窗口,單擊復制外網地址,獲取數據備份文件外網下載地址,如下圖所示。

      技術分享

  2. 下載數據備份文件,具體操作步驟如下。

    1. 登錄雲服務器ECS。

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

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

      參數說明:

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

      • -O:將下載的結果保存為指定的文件(建議使用URL中包含的文件名)。

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

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

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

      1. bash rds_backup_extract.sh -f <數據備份文件名>.tar.gz -C /home/mysql/data

      參數說明:

      • -f:指定要解壓的備份集文件。

      • -C:指定文件要解壓到的目錄。可選參數,若不指定就解壓到當前目錄。

    2. 執行如下命令,查詢解壓後生成的文件。

      1. ls -l /home/mysql/data

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

      技術分享

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

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

      若系統返回如下類似結果,則說明備份文件已成功恢復到本地數據庫。

      技術分享

  4. 為避免版本問題,需修改backup-my.cnf參數,具體操作步驟如下。

    1. 執行如下命令,以文本方式編輯backup-my.cnf文件。

      1. vi /home/mysql/data/backup-my.cnf
    2. 執行如下命令,註釋掉如下參數。

      1. #innodb_fast_checksum
      2. #innodb_page_size
      3. #innodb_log_block_size
    3. Esc鍵,然後輸入:wq進行保存並關閉編輯器。

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

    1. chown -R mysql:mysql /home/mysql/data
  6. 執行如下命令,啟動MySQL進程。

    1. mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &
  7. 執行如下命令,登錄MySQL數據庫以驗證進程啟動成功。

    1. mysql -uroot

    若系統返回如下結果,進程啟動成功,則說明已成功執行參數註釋和修改文件屬主。

    技術分享

  8. 恢復完成後,表mysql.user中不包含在RDS實例中創建的用戶,需要新建。在新建用戶前,執行如下命令。

    1. 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;

1028阿裏RDS如何恢復雲數據庫MySQL的備份文件到自建數據庫