如果拥有RDS MySQL实例的数据备份,可以通过备份恢复的方式实现数据修复。
其他引擎恢复数据请参见:
恢复全量数据到新实例
以下介绍如何恢复到一个新实例,验证数据后,再将数据迁回原实例,此功能原名为克隆实例。说明
- 新实例的白名单设置、备份设置、参数设置和当前实例保持一致。
- 新实例内的数据与用于恢复的备份文件中的数据一致。
- 新实例带有所使用备份文件或时间点当时的账号信息。
恢复时长
恢复时长受多个因素影响,详情请参见附录:恢复数据到新实例的预估时间。
费用
由于数据是恢复到新实例上,因此需要收取新实例费用。您可以创建按量付费的新实例,使用后将其释放。
操作步骤
下一步
- 登录到新实例并验证数据。关于登录实例的操作,请参见连接实例。
- (可选)将需要的数据从新实例迁移回原实例。详情请参见RDS实例间的数据迁移。
说明 数据迁移是指将一个实例(称为源实例)的数据复制到另一个实例(称为目标实例),迁移操作不会对源实例造成影响。
恢复全量数据至原实例、其它实例、本地数据库
方式一
先恢复全量数据到新实例,验证数据后,迁移至原实例或其它实例。
方式二
如果有使用DBS创建逻辑备份,可以直接将其恢复至原实例或其它实例。
具体请参见恢复逻辑备份。
附录:恢复数据到新实例的预估时间
影响因素
恢复数据到新实例的速度受多种因素影响,无法保证100%恢复成功,并且用户执行的SQL引发的某些异常情况需要人工排查处理。影响速度的主要因素如下:
- 全量备份数据大小:数据量越大恢复速度越慢。
- 增量备份数据大小:数据量越大恢复速度越慢。
- 是否存在大事务:Binlog中存在大事务会拖慢恢复速度。
- 是否存在热点更新:Binlog中存在热点更新会拖慢恢复速度。
- 是否存在外键约束(FOREIGN KEY):外键约束会增加校验成本,拖慢恢复速度。
- Binlog数量:按时间点恢复时,所需的Binlog个数越多,恢复速度越慢。
- MySQL 8.0是否存在分区表:如存在则暂不支持恢复。
- 实例的存储类型:云盘的恢复速度比本地盘快。
- 实例规格:新实例的规格越大恢复速度越快。
- 实例版本:不同的实例版本并行复制的策略不同,不支持并行复制的场景都将以单线程模式进行,影响恢复速度。
说明 除上述影响恢复速度的因素以外,还有部分因素可能导致恢复无法正常进行,例如:
- 新实例版本小于源实例,Binlog有不能正常解析的风险。
- 表名或列名中包含中文、特殊字符等情况,恢复时有失败的风险。
- 若源实例中的Binlog被删除,则无法完成恢复。
- 若在源实例中关闭了implicit_primary_key参数,则会导致无主键的表恢复失败。
恢复时间预估
测试环境:2核4 GB的高可用本地盘实例。
操作 | 预计消耗时间 |
---|---|
创建实例 | 5分钟 |
配置实例 | 15分钟 |
下载备份数据 | 400 GB/小时 |
启动实例 | 5分钟 |
下载Binlog | 400 GB/小时 |
应用Binlog | 根据Binlog的具体内容决定 |
常见问题
- 误删除了一个或多个库,如何恢复?
您可以进行库表恢复,详情请参见恢复库表。对于不支持库表恢复的实例,您可以参见本文,将数据全量恢复到新实例上,经过验证后,再将数据迁回原实例。
- 没有数据备份可以按时间点恢复吗?
不可以。因为按时间点恢复是先将所选时间点前的一个全量数据备份恢复到实例,然后根据Binlog增量恢复数据到所选时间点。
- 为什么恢复时无法选择主节点交换机?
可能因为您在前一步(基础配置)选择的可用区内没有交换机,所以在当前步骤(网络和资源组)无法选择主节点交换机。您可以单击到控制台创建跳转到专有网络控制台,在可用区内创建交换机,就可以选择主节点交换机了。