如何为非 SQL Server 订阅服务器创建订阅(复制 Transact-SQL 编程)
事务复制和快照复制支持向非 SQL Server 订阅服务器发布数据。 您可以使用复制存储过程以编程的方式创建对非 SQL Server 订阅服务器的推送订阅。 有关支持的订阅服务器平台的信息,请参阅非 SQL Server 订阅服务器。
安全说明 |
---|
如果可能,请在运行时提示用户输入安全凭据。 如果必须在脚本文件中存储凭据,则必须保护文件以防止未经授权的访问。 |
创建对非 SQL Server 订阅服务器的事务发布或快照发布的推送订阅。
在发布服务器和分发服务器上安装非 SQL Server 订阅服务器的最新 OLE DB 访问接口。 有关 OLE DB 访问接口的复制要求,请参阅非 SQL Server 订阅服务器、Oracle 订阅服务器和 IBM DB2 订阅服务器。
在发布服务器的发布数据库中,通过执行 sp_helppublication (Transact-SQL) 验证发布是否支持非 SQL Server 订阅服务器。
如果 enabled_for_het_sub 的值为 1,则支持非 SQL Server 订阅服务器。
如果 enabled_for_het_sub 的值为 0,则执行 sp_changepublication (Transact-SQL),为 @property 指定 enabled_for_het_sub 值并将 @value 指定为 true。
注意 在将 enabled_for_het_sub 更改为 true 之前,必须删除发布的任何现有订阅。 当发布还支持更新订阅时,无法将 enabled_for_het_sub 设置为 true。 更改 enabled_for_het_sub 将影响其他发布属性。 有关详细信息,请参阅非 SQL Server 订阅服务器。
在发布服务器上,对发布数据库执行 sp_addsubscription (Transact-SQL)。 指定 @publication、@subscriber、@destination_db 的值 (default destination)、@subscription_type 的值 push 和 @subscriber_type 的值 3(指定 OLE DB 访问接口)。
在发布服务器上,对发布数据库执行 sp_addpushsubscription_agent (Transact-SQL)。 指定下列各项:
@subscriber 和 @publication 参数。
@subscriber_db 的值 (default destination),
@subscriber_provider、@subscriber_datasrc、 @subscriber_location、@subscriber_provider_string 和 @subscriber_catalog 的非 SQL Server 数据源的属性。
分发服务器中的分发代理运行时所使用的 @job_login 和 @job_password 指定的 Microsoft Windows 凭据。
注意 使用 Windows 集成身份验证进行的连接始终使用由 @job_login 和 @job_password 指定的 Windows 凭据。 分发代理始终使用 Windows 集成身份验证与分发服务器建立本地连接。 默认情况下,该代理将使用 Windows 集成身份验证连接到订阅服务器。
@subscriber_security_mode 的值 0 和 @subscriber_login 与 @subscriber_password 的 OLE DB 访问接口登录信息。
该订阅的分发代理作业计划。 有关详细信息,请参阅如何指定同步计划(复制 Transact-SQL 编程)。
安全说明 用远程分发服务器在发布服务器上创建推送订阅时,为所有参数(包括 job_login 和 job_password)提供的值将以纯文本格式发送到分发服务器。 在执行此存储过程之前,应该对发布服务器及其远程分发服务器之间的连接进行加密。 有关详细信息,请参阅加密与 SQL Server 的连接。