复制到 Azure SQL 数据库
适用于:Azure SQL 数据库
可以从 SQL Server 和 Azure SQL 托管实例将 Azure SQL 数据库配置为单向事务或快照复制拓扑中的推送订阅服务器。
支持的配置
- Azure SQL 数据库只能是 SQL Server 发布服务器和分发服务器的推送订阅服务器。
- 充当发布服务器和/或分发服务器的 SQL Server 实例可以是在本地运行的 SQL Server 的实例、Azure SQL 托管实例,或在云中的 Azure 虚拟机上运行的 SQL Server 的实例。
- 不能将分发数据库和复制代理置于一个 Azure SQL 数据库中的数据库上。
- 支持快照和单向事务性复制。 不支持对等事务复制和合并复制。
版本
若要将内容成功复制到 Azure SQL 数据库中的数据库,SQL Server 发布服务器和分发服务器须至少使用以下版本之一:
以下版本的 SQL Server 支持从 SQL Server 数据库发布到任何 Azure SQL 数据库:
- SQL Server 2016 及更高版本
- SQL Server 2014 RTM CU10 (12.0.4427.24) 或 SP1 CU3 (12.0.2556.4)
- SQL Server 2012 SP2 CU8 (11.0.5634.1) 或 SP3 (11.0.6020.0)
注意
尝试使用不支持的版本来配置复制可能导致错误 MSSQL_REPL20084(过程无法连接到订阅服务器)和 MSSQL_REPL40532(无法打开登录名所请求的服务器 <name>。登录失败。)。
若要使用 Azure SQL 数据库的所有功能,必须使用最新版本的 SQL Server Management Studio (SSMS) 和 SQL Server Data Tools。
复制类型
有不同的复制类型:
复制 | Azure SQL 数据库 | Azure SQL 托管实例 |
---|---|---|
标准事务 | 是(仅用作订阅服务器) | 是 |
快照 | 是(仅用作订阅服务器) | 是 |
合并复制 | 否 | 否 |
对等 | 否 | 否 |
双向 | 否 | 是 |
可更新订阅 | 否 | 否 |
备注
- 仅支持推送订阅 Azure SQL 数据库。
- 若要配置复制,可以使用 SQL Server Management Studio,也可以在发布服务器上执行 Transact-SQL 语句。 不能使用 Azure 门户来配置复制。
- 复制时,只能使用 SQL Server 身份验证登录来连接到 Azure SQL 数据库。
- 复制的表必须有主键。
- 必须已经有 Azure 订阅。
- Azure SQL 数据库订阅服务器可以位于任何区域。
- SQL Server 上的单一发布可以支持 Azure SQL 数据库和 SQL Server(本地的以及 Azure 虚拟机中的 SQL Server)订阅服务器。
- 必须从 SQL Server 而不是 Azure SQL 数据库中执行复制管理、监视和故障排除。
- 在适用于 SQL 数据库的
sp_addsubscription
中,仅@subscriber_type = 0
受支持。 - Azure SQL 数据库不支持双向、即时、可更新或对等复制。
复制体系结构
方案
典型复制方案
- 在 SQL Server 数据库上创建事务复制发布。
- 在 SQL Server 上使用新建订阅向导或 Transact-SQL 语句创建一个推送,以便推送到 Azure SQL 数据库的订阅。
- 对于 Azure SQL 数据库中的单一数据库和共用数据库,初始数据集是由快照代理创建并由分发代理分发和应用的快照。 使用 SQL 数据库托管实例发布服务器,还可以使用数据库备份来植入 Azure SQL 数据库订阅服务器。
数据迁移方案
- 使用事务复制将数据从 SQL Server 数据库复制到 Azure SQL 数据库。
- 重定向客户端或中间层应用程序以更新数据库副本。
- 停止更新 SQL Server 版本的表并删除发布。
限制
Azure SQL 数据库不支持具有以下选项的复制:
- 复制文件组关联关系
- 复制表分区方案
- 复制索引分区方案
- 复制用户定义的统计信息
- 复制默认绑定
- 复制规则绑定
- 复制全文索引
- 复制 XML XSD
- 复制 XML 索引
- 复制权限
- 复制空间索引
- 复制筛选的索引
- 复制数据压缩属性
- 复制稀疏列属性
- 将文件流转换为 MAX 数据类型
- 将 hierarchyid 转换为 MAX 数据类型
- 将空间转换为 MAX 数据类型
- 复制扩展的属性
限制待定
- 复制排序规则
- 在 SP 的序列化事务中执行
示例
创建发布和推送订阅。 有关详细信息,请参阅:
- 创建发布
- 创建推送订阅,方法是将服务器名称用作订阅服务器(例如 N'azuresqldbdns.database.chinacloudapi.cn' ),将 Azure SQL 数据库名称用作目标数据库(例如 AdventureWorks)。