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实例需满足以下条件:
源实例和目标实例必须在同一个阿里云账号下.
源实例和目标实例必须在同一地域,可用区可以不同,网络类型需相同。
目标实例中必须没有和源实例待复制数据库同名的数据库。
目标实例的可用存储空间必须大于源实例中待复制数据库占用的空间。如需扩容存储空间,请参见变更配置。
操作步骤
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧菜单栏中单击数据库管理。
单击复制到其他实例,配置如下参数。
配置项
说明
源实例名
系统默认显示源实例的ID。
目标实例名
选择目标RDS实例。
说明源实例和目标实例必须在同一地域,可用区可以不同,网络类型需相同。
需复制的数据库
指定哪些源实例中的数据库需要复制到目标实例。您可以通过或灵活控制需要复制的数据库。
选择多个数据库或者全部数据库时,请确保:
目标实例的可用存储空间大于源实例中待复制数据库占用的空间。
需要复制的数据库没有与目标实例中的数据库重名。
说明若复制操作正在进行时,目标实例中创建了与需要复制的数据库同名的库,此时系统会跳过同名的数据库,不做复制。
若选择了某个数据库,则数据库内的表结构和表数据均会复制过去。
是否复制用户和权限
是否将源数据库的所属用户以及权限复制到目标实例的数据库中。
同步复制数据库的用户和权限:将源实例中该库对应的用户和权限复制到目标实例。存在以下两种情况:
若目标实例中存在对应的用户,直接给其添加源实例中对应的权限;
若目标实例中不存在对应的用户,则先在目标实例中创建该用户,再赋予相应的权限。
仅复制数据库,不恢复用户与权限:(默认选项)源实例该库对应的用户和权限不复制到目标实例。
您可以在目标实例中为该库添加账号和权限,请参见创建数据库和账号。
单击确定。
相关操作
通过API在RDS SQL Server实例间复制数据库,请参见CopyDatabaseBetweenInstances - RDS SQL Server实例间复制数据库。
若拥有RDS SQL Server实例的备份数据,您可以将备份数据恢复到已有实例或新实例上,可用于误操作后恢复以及分析历史数据等场景,请参见恢复SQL Server数据。