您可以使用RDS MySQL的备份下载功能,将云盘实例的快照备份数据转换成CSV文件或SQL文件导出,然后通过该文件将数据恢复到自建MySQL数据库中。
前提条件
-
RDS实例需满足以下条件:
-
MySQL数据库版本:8.0、5.7
-
存储类型:云盘
说明
您可以前往实例基本信息页面查看以上信息。
-
-
RDS实例未开启TDE加密。实例中若存在加密过的表,会导致恢复过程出错,请先对已加密的表执行解密操作。
-
请确保自建MySQL数据库已开启local_infile参数。
说明
-
查看local_infile参数状态(ON表示已开启):
SHOW GLOBAL VARIABLES LIKE 'local_infile';
-
开启local_infile参数:
SET GLOBAL local_infile=1;
-
功能限制
从下载的备份集恢复到本地MySQL数据库时,需要注意以下限制:
-
不支持以下二进制字段类型:BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB。
说明
如果备份集中包含这些字段类型,它们将会以十六进制格式进行存储。在导入时,MySQL会将二进制字段当作字符串进行处理。此种情况下,需要手动在
load data local infile
命令中使用UNHEX函数将十六进制格式转换为原始的二进制串。 -
不支持以下空间字段类型:GEOMETRY、POINT、LINESTRING、POLYGON、MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、GEOMETRYCOLLECTION。
注意事项
-
建议RDS MySQL数据库和自建MySQL数据库版本保持一致。不同版本的数据库间可能存在不兼容的特性,导致恢复失败。
-
在执行恢复命令前,请确保目标数据库中不存在与备份数据中同名的数据库和表,以防止数据冲突或数据丢失。请仔细检查并删除可能会产生冲突的同名数据库和表。
-
在进行恢复任务时,如果您因为某些原因中断了恢复任务,可能会导致恢复数据不完整或恢复失败,请谨慎操作。
操作步骤
本示例以RDS MySQL云盘实例的SQL文件恢复至ECS实例(CentOS 7.8 64位)的自建MySQL数据库为例,其他环境请使用对应命令。
-
登录RDS控制台,使用下载备份功能将云盘实例的备份文件转换成CSV文件或SQL文件,并下载到本地或ECS实例中。
-
在本地或ECS实例中解压下载的备份文件,命令如下:
tar -izxvf .tar.gz -C
本示例将名为
backup.tar.gz
的压缩文件解压缩到指定目录/home/mysql/data
中,具体请以实际文件名和目录为准。tar -izxvf backup.tar.gz -C /home/mysql/data
-
(可选)查看备份文件是否已解压到指定位置(/home/mysql/data)。
ls -al /home/mysql/data
-
将Python脚本文件下载至本地或ECS实例中。
-
对Python脚本文件
restore_from_downloads.py
进行授权,命令如下:chmod +x ./restore_from_downloads.py
-
将CSV文件或SQL文件恢复至自建数据库,恢复命令如下:
python ./restore_from_downloads.py
示例如下:
python ./restore_from_downloads.py /home/mysql/data 127.0.0.1 3306 root "#Tes********"
执行结果:
重要
-
请确保自建数据库中没有和备份数据中同名的数据库,否则会导致恢复失败。
-
如果数据库账号名或密码中包含了特殊字符(例如:#、空格等),在命令行传入参数时需要使用英文双引号(””)将密码括起来。例如,如果数据库密码是
#1234
,则需要在命令行中传入"#1234"
。 -
如果出现类似
Command 'python' not found
的报错,说明系统中没有安装Python或者Python命令不在系统的搜索路径中。此时请确认您系统中安装的Python版本以及执行Python的命令是否正确。例如,如果系统中安装了Python3,可以使用python3 ./restore_from_downloads.py /home/mysql/data/test1.sql 127.0.0.1 3306 zhtxxxxx "#txxxxx"
。
-
相关文档
-
本方案仅适用于云盘版实例的快照备份恢复。如果您需要恢复本地盘实例的备份,请参见RDS MySQL物理备份文件恢复到自建数据库或RDS MySQL逻辑备份文件恢复到自建数据库。
-
阿里云提供的迁移服务也可帮助您将RDS MySQL迁移至自建MySQL数据库。更多详情,请参见从RDS MySQL迁移至自建MySQL。
-
更多数据恢复方案,请参见数据恢复方案概览。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/166983.html