配置到 Azure SQL Edge 的复制
重要
Azure SQL Edge 将于 2025 年 9 月 30 日停用。 有关详细信息和迁移选项,请参阅停用通知。
注意
Azure SQL Edge 不再支持 ARM64 平台。
可以将 Azure SQL Edge 实例配置为单向事务复制或快照复制的推送订阅服务器。 此实例不能充当事务复制配置的发布服务器或分发服务器。 Azure SQL Edge 不支持合并复制、对等复制或 Oracle 发布。
支持的配置
Azure SQL Edge 实例必须是发布服务器的推送订阅服务器。
发布服务器和分发服务器可以是:
- 在本地运行的 SQL Server 实例,也可以是在 Azure 虚拟机中运行的 SQL Server 实例。 有关详细信息,请参阅 Azure 虚拟机上的 SQL Server 概述。 SQL Server 实例必须使用高于 SQL Server 2016 的版本。
- Azure SQL 托管实例的实例。 SQL 托管实例可以托管发布服务器、分发服务器和订阅服务器数据库。 有关详细信息,请参阅通过 SQL 托管实例进行复制。
不能将分发数据库和复制代理置于一个 Azure SQL Edge 实例上。
注意
如果尝试使用不支持的版本来配置复制,可能会收到以下两个错误:MSSQL_REPL20084(“过程无法连接到订阅服务器”)和 MSSQL_REPL40532(“无法打开登录名所请求的服务器 <name>。登录失败。”)。
备注
在配置复制时,必须了解以下要求和最佳做法:
- 可以使用 SQL Server Management Studio 配置复制。 还可以通过使用 SQL Server Management Studio 或 Azure Data Studio 在发布服务器上运行 Transact-SQL 语句来执行此操作。
- 若要复制到 Azure SQL Edge 实例,必须使用 SQL Server 身份验证登录。
- 复制的表必须有主键。
- SQL Server 上的单一发布可以支持 Azure SQL Edge 和 SQL Server(本地 SQL Server 以及 Azure 虚拟机中的 SQL Server)订阅服务器。
- 必须从 SQL Server 实例执行复制管理、监视和故障排除。
- 仅支持推送 Azure SQL Edge 订阅。
- Azure SQL Edge 的存储过程
sp_addsubscription
中仅支持@subscriber_type = 0
。 - Azure SQL Edge 不支持双向、即时、可更新或对等复制。
- Azure SQL Edge 仅支持 SQL Server 或 SQL 托管实例中可用的功能子集。 如果尝试复制包含一个或多个不支持的功能的数据库(或数据库中的对象),尝试将失败。 例如,如果尝试复制包含空间数据类型对象的数据库,则会收到错误。 有关详细信息,请参阅 Azure SQL Edge 支持的功能。
在 Azure SQL Edge 实例上初始化参考数据
你可能需要使用随时间变化的参考数据初始化实例。 例如,在 SQL Server 实例上对机器学习模型进行训练后,你可能需要更新 Azure SQL Edge 实例上的这些模型。 下面是在这种情况下初始化实例的方法:
- 在 SQL Server 数据库上创建事务复制发布。
- 在 SQL Server 实例上使用“新建订阅向导”或 Transact-SQL 语句创建 Azure SQL Edge 订阅推送。
- 可以使用快照代理生成并由分发代理分发和交付的快照来初始化 Azure SQL Edge 上的复制数据库。 或者,可以使用发布服务器上的数据库备份来进行初始化。 请记住,如果数据库备份包含 Azure SQL Edge 不支持的对象或功能,还原操作将失败。
限制
Azure SQL Edge 订阅不支持以下选项:
- 复制文件组关联关系
- 复制表分区方案
- 复制索引分区方案
- 复制用户定义的统计信息
- 复制默认绑定
- 复制规则绑定
- 复制全文索引
- 复制 XML XSD
- 复制 XML 索引
- 复制权限
- 复制空间索引
- 复制筛选的索引
- 复制数据压缩属性
- 复制稀疏列属性
- 复制文件流、
hierarchyid
或空间数据类型 - 将
hierarchyid
转换为 MAX 数据类型 - 将空间转换为 MAX 数据类型
- 复制扩展的属性
- 复制权限
示例
创建发布和推送订阅。 有关详细信息,请参阅:
- 创建发布
- 使用 Azure SQL Edge 服务器名称和 IP 作为订阅服务器(例如 myEdgeinstance,1433),并使用 Azure SQL Edge 实例上的数据库名称作为目标数据库(例如 AdventureWorks)来创建推送订阅 。