非 SQL Server 订阅者

以下非 SQL Server 订阅服务器可以使用推送订阅来订阅快照和事务发布。 使用列出的 OLE DB 访问接口的最新版本列出的每个数据库的两个最新版本支持订阅。

异构复制到非 SQL Server 订阅服务器已弃用。 Oracle 发布服务已弃用。 若要移动数据,请使用变更数据捕获和 SSIS 创建解决方案。

谨慎

此功能将在Microsoft SQL Server 的未来版本中删除。 避免在新开发工作中使用此功能,并计划修改当前使用此功能的应用程序。

数据库 操作系统 提供者
神谕 Oracle 支持的所有平台 Oracle OLE DB 提供程序(由 Oracle 提供)
IBM DB2 MVS、AS400、Unix、Linux、Windows(不包括 9.x) Microsoft Host Integration Server (HIS) OLE DB 提供程序

有关创建对 Oracle 和 IBM DB2 的订阅的信息,请参阅 Oracle 订阅服务器IBM DB2 订阅服务器

非SQL Server 订阅服务器的注意事项

复制到非 SQL Server 订阅服务器时,请记住以下注意事项:

一般注意事项

  • 复制支持将表和索引视图作为表发布到非 SQL Server 订阅服务器(无法将索引视图复制为索引视图)。

  • 在“新建发布向导”中创建发布,然后使用“发布属性”对话框为非 SQL Server 订阅服务器启用发布时,订阅数据库中所有对象的所有者未为非 SQL Server 订阅服务器指定,而对于Microsoft SQL Server 订阅服务器,则将其设置为发布数据库中相应对象的所有者。

  • 如果一个发布将要拥有 SQL Server 订阅服务器和非 SQL Server 订阅服务器,那么必须在为 SQL Server 订阅服务器创建任何订阅之前,就为非 SQL Server 订阅服务器启用该发布。

  • 默认情况下,非 SQL Server 订阅服务器快照代理生成的脚本在 CREATE TABLE 语法中使用非带引号的标识符。 因此,名为“test”的已发布表将被复制为“TEST”。 若要使用与发布数据库中的表相同的大小写,请使用分发代理的 -QuotedIdentifier 参数。 如果发布的对象名称(如表、列和约束)包含非 SQL Server 订阅服务器上的数据库版本中保留字的空格或单词,则还必须使用 -QuotedIdentifier 参数。 有关此参数的详细信息,请参阅 复制分发代理

  • 运行分发代理的帐户必须具有对 OLE DB 提供程序安装目录的读取权限。

  • 默认情况下,对于非 SQL Server 订阅服务器,分发代理对订阅数据库使用值 [(默认目标)](分发代理的 -SubscriberDB 参数):

    • 对于 Oracle,服务器最多具有一个数据库,因此不需要指定数据库。

    • 对于 IBM DB2,数据库是在 DB2 连接字符串中指定的。 有关详细信息,请参阅 为非 SQL Server 订阅服务器创建订阅

  • 如果 SQL Server 分发服务器在 64 位平台上运行,则必须使用 64 位版本的相应 OLE DB 提供程序。

  • 无论发布服务器和订阅服务器上使用的排序规则或代码页如何,复制都会以 Unicode 格式传输数据。 建议在发布服务器和订阅服务器之间复制时选择兼容的排序规则/代码页。

  • 如果在发布中添加或删除文章,则必须重新初始化对非 SQL Server 订阅者的订阅。

  • 所有非 SQL Server 订阅者支持的唯一定约束是:NULL 和 NOT NULL。 主键约束被复制为唯一索引。

  • NULL 值受到不同数据库的不同对待,这会影响空值、空字符串和 NULL 的表示方式。 这反过来会影响插入到具有唯一约束的列中的值的行为。 例如,Oracle 允许列中的多个 NULL 值被视为唯一,而 SQL Server 仅允许唯一列中的单个 NULL 值。

    另一个因素是当列定义为 NOT NULL 时,NULL 值、空字符串和空值是如何处理的。 有关解决 Oracle 订阅服务器此问题的信息,请参阅 Oracle 订阅服务器

  • 删除订阅时,不会从非 SQL Server 订阅服务器中删除复制相关的元数据(事务序列表)。

符合订阅者数据库的要求

  • 发布的模式和数据必须符合订阅方数据库的要求。 例如,如果非 SQL Server 数据库的最大行大小小于 SQL Server,则必须确保发布的架构和数据不超过此大小。

  • 复制到非 SQL Server 订阅服务器的表将采用订阅服务器上的数据库的表命名约定。

  • 非 SQL Server 订阅服务器不支持 DDL。 有关架构更改的详细信息,请参阅 对发布数据库进行架构更改

复制功能支持

  • SQL Server 提供两种类型的订阅:推送和拉取。 非 SQL Server 系统必须使用推送订阅,这种订阅模式下分发代理在 SQL Server 分发服务器上运行。

  • SQL Server 提供两种快照格式:原生 bcp 模式和字符模式。 非 SQL Server 订阅方需要字符模式快照。

  • 非 SQL Server 的订阅者不能使用即时更新或排队更新订阅,也不能作为对等拓扑中的节点。

  • 无法从备份中自动初始化非 SQL Server 订阅服务器。

另请参阅

异类数据库复制
订阅刊物