您可以参考本文将下载的备份数据恢复到数据库实例中。
前提条件
恢复物理备份的下载数据
下载后的备份数据说明
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;
语句开启文件导。上述操作完成后,再次执行导入脚本即可成功。