您可以參考本文將下載的備份資料恢複到資料庫執行個體中。
前提條件
恢複物理備份的下載資料
下載後的備份資料說明
MySQL資料為Xtrabackup產生的資料格式,並進行壓縮。
SQL Server資料為其原生備份命令產生的資料格式,並進行壓縮。
MySQL物理備份下載資料的樣本如下。
操作步驟
下載完成後,您需要對下載的檔案進行解壓操作,預設情況下,檔案被壓縮在
<下載任務ID>.tar.gz
檔案中。命令列方式的解壓命令如下:
執行
gzip -d <下載任務ID>.tar.gz
命令,獲得<下載任務ID>.tar
檔案。通過
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>
檔案。
啟動資料庫服務。
例如MySQL資料庫,需執行如下操作。
將my.cnf(資料庫設定檔)中的
datadir
參數修改為當前已恢複的資料目錄。執行啟動資料庫命令,例如在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"
操作步驟
下載完成後,您需要對下載的檔案進行解壓操作,預設情況下,檔案被壓縮在
<下載任務ID>.tar.gz
檔案中。說明以下命令僅適用於Linux作業系統。
命令列方式的解壓命令如下:
mkdir download && tar -zvxf 1jewk54******.tar.gz -C ./download
根據建表語句恢複表結構,再匯入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;
語句開啟檔案導。上述操作完成後,再次執行匯入指令碼即可成功。