实例间的数据库复制

RDS SQL Server支持实例间的数据库复制功能,可满足用户在不同场景下的数据迁移和同步等需求。您可以通过RDS控制台或API将一个实例中的单个或多个数据库,以及源数据库的所属用户和权限复制到另外一个实例中。

功能说明

RDS SQL Server将数据从源实例复制到目标实例期间,会先对源实例做一次全量数据备份,待源实例备份完成后,再将数据复制到目标实例。如果数据复制期间源实例持续有新的写入操作(增量数据),那么这部分增量数据不会被复制到目标实例中。

您可以选择单库复制或全库复制,且整个复制操作要么全部成功,要么全部失败,以此保证数据的一致性。具体复制规则如下:

实例要求

说明

数据库版本

已有实例数据库版本必须大于等于原实例数据库版本。

实例系列

不支持高系列到低系列。系列从高到低依次为集群系列 > 高可用系列 > 基础系列。

实例规格

仅支持同规格到同规格、通用规格到独享规格、独享规格到通用规格。

RDS数据库复制功能与DTS迁移功能的区别

区别项

RDS数据库复制功能

DTS迁移功能

功能原理

RDS数据库复制的实现原理是通过备份集还原,即通过指定时间点或者备份集来将指定的数据库复制到目标实例,不会删除源库数据。

DTS迁移为逻辑迁移,其实现原理是通过读取并解析源端日志的方式进行数据迁移。数据迁移过程包括三个阶段,即结构迁移、全量数据迁移和增量数据迁移, 不会删除源库数据。

支持的数据源

仅支持源为RDS SQL Server。

支持源为阿里云ECS自建数据库、IDC自建数据库、其它云服务器上的自建数据库或RDS SQL Server。更多详情,请参见支持的数据库

实现模式

仅支持一次性全量复制,不收费。

支持结构迁移和全量数据迁移、增量数据迁移。增量迁移收费,详情请参见计费概述

前提条件

RDS SQL Server实例需满足以下条件:

  • 源实例和目标实例必须在同一个阿里云账号下.

  • 源实例和目标实例必须在同一地域,可用区可以不同,网络类型需相同。

  • 目标实例中必须没有和源实例待复制数据库同名的数据库

  • 目标实例的可用存储空间必须大于源实例中待复制数据库占用的空间。如需扩容存储空间,请参见变更配置

操作步骤

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧菜单栏中单击数据库管理

  3. 单击复制到其他实例,配置如下参数。

    配置项

    说明

    源实例名

    系统默认显示源实例的ID。

    目标实例名

    选择目标RDS实例。

    说明

    源实例和目标实例必须在同一地域,可用区可以不同,网络类型需相同。

    需复制的数据库

    指定哪些源实例中的数据库需要复制到目标实例。您可以通过右移左移灵活控制需要复制的数据库。

    选择多个数据库或者全部数据库时,请确保:

    • 目标实例的可用存储空间大于源实例中待复制数据库占用的空间。

    • 需要复制的数据库没有与目标实例中的数据库重名。

    说明
    • 若复制操作正在进行时,目标实例中创建了与需要复制的数据库同名的库,此时系统会跳过同名的数据库,不做复制。

    • 若选择了某个数据库,则数据库内的表结构和表数据均会复制过去。

    是否复制用户和权限

    是否将源数据库的所属用户以及权限复制到目标实例的数据库中。

    • 同步复制数据库的用户和权限:将源实例中该库对应的用户和权限复制到目标实例。存在以下两种情况:

      • 若目标实例中存在对应的用户,直接给其添加源实例中对应的权限;

      • 若目标实例中不存在对应的用户,则先在目标实例中创建该用户,再赋予相应的权限。

    • 仅复制数据库,不恢复用户与权限:(默认选项)源实例该库对应的用户和权限不复制到目标实例。

      您可以在目标实例中为该库添加账号和权限,请参见创建数据库和账号

  4. 单击确定

相关操作

常见问题

恢复数据到其他实例的时间预估需要多久?

预估时间

通常情况下,恢复数据到其他实例所需的预估时间范围如下。需注意,以下备份和恢复速度均基于未压缩的数据大小。

说明

由于Web版本的实例不支持备份压缩,因此备份效率会有所影响,备份与恢复速度可能降至100 GB/小时以下。

操作

是否必须

预计消耗时间

注意事项

对实例进行全量备份

非必须

200 GB/小时

  • 由于事务日志的恢复速度远低于全量备份的数据恢复速度,为确保数据恢复的最佳效率,若36小时内实例未进行过全量备份,升级过程中实例将执行一次全量备份,从而在加快恢复速度和额外增加一次全量备份之间找到平衡点。

    建议在恢复前选择适宜时间手动执行全量备份,或选择在系统自动全量备份结束后的36小时内发起恢复任务,以减少恢复过程所需总时长。

  • 备份速度可能因地区和时间段的不同而有所变化。

  • 为了获得更准确的备份和恢复性能,请参考最近一次全量备份的数据量和备份时间。

在目标实例恢复全量备份

必须

200 GB/小时

将数据库恢复上线

必须

正常2分钟内

  • 资源消耗:应用增量事务日志是资源密集型操作。小规格实例(例如2核4 GB)可能会因事务日志数量较多而导致恢复速度下降。

  • 数据库恢复加速选项:RDS SQL Server 2019及更高版本提供加速数据库恢复(Accelerated Database Recovery)选项,可能会减少数据库恢复上线步骤所需时间。具体请根据微软官方文档综合评估是否启用此选项。

预估示例

测试实例:实例规格为4核8 GB,数据量大小为600 GB。

  • 全量备份(非必须):预计耗时3小时。(600 GB / 200 GB每小时)

  • 恢复全量备份至目标实例:预计耗时3小时。(600 GB / 200 GB每小时)

  • 将数据库恢复上线:预计耗时2分钟内。

综上,在此示例中,若实例36小时内未进行过全量备份,总耗时预计为6小时2分钟左右,否则需要3小时2分钟左右。

恢复建议

  • 维护窗口规划:建议在系统负载较低的时段进行恢复操作,以最小化对业务的影响。

  • 长事务问题:恢复过程中应避免执行长时间运行的事务操作,例如创建或重建索引、数据归档等,以免延长数据库恢复上线步骤的时间。