当您在数据库备份DBS下载备份数据后,您可以参考本文将下载的备份数据恢复至数据库实例。
前提条件
恢复物理备份的下载数据
下载后的备份数据说明
- 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逻辑备份下载数据的目录结构与示例文件如下:图 1. 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 <1jewk5430hyk7>.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:数据库连接地址。
- 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;
。上述操作完成后,再次执行导入脚本即可成功。