mysql -u 用户名 -p 数据库名。
MySQL 恢复数据到自建数据库
背景介绍
在现代企业中,数据是最重要的资产之一,为了确保数据的高可用性和安全性,许多企业使用云数据库服务来管理其数据,当需要将数据恢复到本地自建的MySQL数据库时,可能会面临一些挑战,本文将详细介绍如何将数据从RDS MySQL实例恢复到自建MySQL数据库。
操作步骤
1. 前提条件
确保RDS MySQL实例满足以下条件:
大版本:8.0、5.7、5.6、5.5
系列:高可用系列
存储类型:本地SSD盘
已有逻辑备份,具体操作请参见自动备份。
本地自建MySQL数据库安装在64位的Linux系统中,且与云数据库MySQL版的版本相同,本文以CentOS 7的操作系统以及MySQL 5.7版本为例进行演示。
2. 下载逻辑备份文件
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏中,单击备份恢复。
在基础备份列表 > 数据备份列表中,找到要下载的逻辑备份,并单击其右侧的实例备份下载。
wget -c '<数据备份文件外网下载地址>' -O <自定义文件名>.tar
3. 解压逻辑备份文件
tar xvf <自定义文件名>.tar -C /tmp
4. 解压缩需要恢复的目标数据库压缩文件(.sql.gz结尾)
gzip -d /tmp/目标数据库压缩文件名称
5. 登录自建数据库创建对应的空数据库
mysql -u user -p<数据库密码> create database <空数据库名>; exit
6. 导入SQL文件到对应数据库
mysql -u user -p <空数据库名> < /tmp/解压缩的数据库文件
7. 验证数据恢复结果
use <空数据库名> show tables;
常见问题解答(FAQs)
为什么实例没有逻辑备份?
系统发起的备份默认为物理备份,如果需要逻辑备份,需要手动发起备份,详情请参见自动备份。
为什么下载逻辑备份时,显示的备份集恢复时间点为0?
RDS MySQL的物理备份结合日志备份可以实现按时间点恢复功能,所以会显示具体的备份集恢复时间点(时间戳),而逻辑备份不是用来按时间点恢复的,所以显示为0。
报错ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.如何解决?
这是由于GTID导致的问题,您可以参考如下几种方案:
开启GTID后重新执行恢复操作。
不开启GTID,可以将导入文件(.sql结尾)中的GTID_PURGED内容都注释掉,然后重新执行恢复操作。
在没有主从同步复制的情况下,可以登录数据库后执行reset master命令,然后重新执行恢复操作。
报错ERROR 3546 (HY000) at line 26: @@GLOBAL.GTID_PURGED cannot be changed: the added gtid set must not overlap with @@GLOBAL.GTID_EXECUTED如何解决?
带有GTID信息的导入文件(.sql结尾),要求当前数据库中无其他GTID信息,请登录数据库后执行reset master进行重置,然后重新执行恢复操作。
为什么恢复的数据只在主库中,从库的数据没有自动同步?
请检查下导入文件(.sql结尾)中是否有SESSION.SQL_LOG_BIN= 0,该设置会导致主库的操作不会同步到从库中。
小编有话说
恢复数据到自建MySQL数据库可能看似复杂,但只要按照步骤操作,就能顺利完成,通过本文的介绍,希望能帮助大家更好地理解和实现数据恢复的过程,如果在操作过程中遇到任何问题,欢迎随时咨询。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1404281.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复