您可以參考本文將下載的備份數據恢復到數據庫實例中。
前提條件
恢復物理備份的下載數據
下載后的備份數據說明
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;
語句開啟文件導。上述操作完成后,再次執行導入腳本即可成功。