Non-SQL Server Subscribers

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

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

注意

后续版本的 Microsoft SQL Server 将删除该功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

数据库 操作系统 提供程序
Oracle 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 Subscribers的解决方案。

非 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 参数。 如果非 订阅服务器中已发布的对象名称(如表、列和约束)包含空格或相应版本数据库中保留的字词,则还必须使用 -QuotedIdentifierSQL Server 参数。 有关此参数的详细信息,请参阅 复制分发代理

  • 运行分发代理时使用的帐户必须对 OLE DB 访问接口的安装目录具有读权限。

  • 默认情况下,对于非SQL Server 订阅服务器,分发代理对订阅数据库使用 [(default destination)] 值(分发代理的 -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 订阅服务器不能从备份中自动初始化。

另请参阅

异类数据库复制
订阅发布