全部產品
Search
文件中心

Database Backup:恢複下載後的備份資料

更新時間:Jun 19, 2024

您可以參考本文將下載的備份資料恢複到資料庫執行個體中。

前提條件

  • 已下載備份資料。更多詳情,請參見手動下載備份組配置自動下載備份組

  • 在待恢複的伺服器上部署對應的資料庫服務。例如在恢複MySQL資料庫前,需要在伺服器上安裝好對應版本的MySQL服務。

  • 備份目標儲存類型僅支援DBS內建儲存,不支援使用者OSS儲存。

恢複物理備份的下載資料

下載後的備份資料說明

  • MySQL資料為Xtrabackup產生的資料格式,並進行壓縮。

  • SQL Server資料為其原生備份命令產生的資料格式,並進行壓縮。

MySQL物理備份下載資料的樣本如下。物理備份下載資料

操作步驟

  1. 下載完成後,您需要對下載的檔案進行解壓操作,預設情況下,檔案被壓縮在<下載任務ID>.tar.gz檔案中。

    命令列方式的解壓命令如下:

    1. 執行gzip -d <下載任務ID>.tar.gz命令,獲得<下載任務ID>.tar檔案。

    2. 通過file <下載任務ID>.tar命令查看gzip命令執行後的檔案格式:

      • 如果檔案格式為POSIX tar archive,則執行tar xvf <下載任務ID>.tar命令,獲得<下載任務ID>檔案。

      • 如果檔案格式為Zip archive data, at least v2.0 to extract,則執行unzip <下載任務ID>.tar命令,獲得<下載任務ID>檔案。

  2. 啟動資料庫服務。

    例如MySQL資料庫,需執行如下操作。

    1. 將my.cnf(資料庫設定檔)中的datadir參數修改為當前已恢複的資料目錄。

    2. 執行啟動資料庫命令,例如在Linux作業系統中,可以通過如下命令啟動。

      service mysqld start

恢複邏輯備份的下載資料

下載後的備份資料說明

包含資料庫的建表語句(DDL)和SQL資料。

MySQL邏輯備份下載資料的樣本檔案如下:

建表語句樣本

CREATE TABLE `rds_db`.`orders` (
`order_id`  bigint(20)     COMMENT ''    ,
`product_name`  varchar(32)  CHARSET `utf8` COLLATE `utf8_general_ci`    COMMENT ''    ,
`price`  double     COMMENT ''    ,
`total_amount`  double     COMMENT ''    ,
`created_date`  date     COMMENT ''
) engine=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=`utf8` DEFAULT COLLATE `utf8_general_ci` comment = '' ;
CREATE TABLE `rds_db`.`rds_table` (
`id`  int(11)     COMMENT ''    ,
`price`  decimal(10,2)     COMMENT ''    ,
`trx_time`  timestamp   on update CURRENT_TIMESTAMP  COMMENT ''   NOT NULL   DEFAULT CURRENT_TIMESTAMP
) engine=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=`utf8` DEFAULT COLLATE `utf8_general_ci` comment = '' ;

SQL資料

gmt_create,id
"2020-08-06 12:00:00","1"
"2020-08-06 12:00:01","2"
"2020-08-06 12:00:02","3"
"2020-08-06 12:00:03","4"
"2020-08-06 12:00:04","5"
"2020-08-06 12:00:05","6"
"2020-08-06 12:00:06","7"
"2014-09-06 15:56:07","8"

操作步驟

  1. 下載完成後,您需要對下載的檔案進行解壓操作,預設情況下,檔案被壓縮在<下載任務ID>.tar.gz檔案中。

    說明

    以下命令僅適用於Linux作業系統。

    命令列方式的解壓命令如下:

    mkdir download && tar -zvxf 1jewk54******.tar.gz -C ./download
  2. 根據建表語句恢複表結構,再匯入SQL資料。

    例如MySQL資料庫,您可以通過import.py指令碼恢複全量備份資料,該方案需要您的伺服器提前安裝Python 3,執行命令如下。

    python import.py ./download/ <restore_db_host> <restore_db_port> <restore_db_user> <restore_db_password>

    樣本如下:

    python import.py ./download/ 127.0.0.1 3306 root password123

    參數

    說明

    ./download/

    下載備份資料檔案所在的檔案夾路徑。

    restore_db_host

    待恢複資料的目標資料庫的IP地址。

    restore_db_port

    待恢複資料的目標資料庫的連接埠號碼。

    restore_db_user

    目標資料庫帳號。

    restore_db_password

    目標資料庫密碼。

常見問題

Q:下載的資料恢複到本地MySQL資料庫時,執行出現報錯ERROR 1148 (42000): The used command is not allowed with this MySQL version

A:在MySQL上執行查詢指令碼show variables like 'local_infile';。如果結果是OFF,執行set global local_infile = 1;語句開啟檔案導。上述操作完成後,再次執行匯入指令碼即可成功。