非 SQL Server 订阅服务器
下列非 SQL Server 订阅服务器可通过推送订阅来订阅快照发布和事务性发布。支持所列每个数据库的两个最新版本使用所列 OLE DB 访问接口的最新版本进行订阅。
数据库 | 操作系统 | 提供程序 |
---|---|---|
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 订阅服务器。
非 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 参数。有关此参数的详细信息,请参阅Replication Distribution Agent。
- 运行分发代理时使用的帐户必须对 OLE DB 访问接口的安装目录具有读权限。
- 默认情况下,对于非 SQL Server 订阅服务器,分发代理对订阅数据库使用 [(default destination)] 值(分发代理的 -SubscriberDB 参数):
- 对于 Oracle,一个服务器最多只有一个数据库,因此不必指定数据库。
- 对于 IBM DB2,在 DB2 连接字符串中指定数据库。有关详细信息,请参阅如何为非 SQL Server 订阅服务器创建订阅 (SQL Server Management Studio) 和How to: Create a Subscription for a Non-SQL Server Subscriber (Replication Transact-SQL Programming)。
- 如果 SQL Server 分发服务器运行在 64 位平台上,必须使用相应 OLE DB 访问接口的 64 位版本。
- 无论发布服务器和订阅服务器中的排序规则/代码页是什么,复制都以 Unicode 格式移动数据。建议在发布服务器和订阅服务器之间复制时选择一个兼容的排序规则/代码页。
- 如果在发布中添加或删除项目,必须重新初始化对非 SQL Server 订阅服务器的订阅。
- 所有非 SQL Server 订阅服务器支持的约束只有:NULL 和 NOT NULL。主键约束按唯一索引复制。
- 不同的数据库处理 NULL 值的方式不同,这将影响空白值、空字符串和 NULL 的显示方式,而显示方式又影响在定义了唯一约束的列中插入值的行为。例如,Oracle 允许唯一列中有多个 NULL 值,而 SQL Server 仅允许唯一列中存在一个 NULL 值。
另一个因素是当列被定义为 NOT NULL 时,如何处理 NULL 值、空字符串和空白值。有关如何为 Oracle 订阅服务器解决此问题的信息,请参阅 Oracle 订阅服务器。 - SQL Server Management Studio 不支持为非 SQL Server 订阅服务器启用 SQL Server 2000 发布。若要为非 SQL Server 订阅服务器启用 SQL Server 2000 发布,请使用 SQL Server 2000 企业管理器中提供的创建发布向导。在创建发布向导的**“指定订阅服务器类型”页中,选择“异类数据源”**,如 Oracle 或 Microsoft Access。
符合订阅服务器数据库的要求
- 已发布的架构和数据必须符合订阅服务器中的数据库的要求。例如,如果非 SQL Server 数据库的最大行大小比 SQL Server 小,必须确保已发布的架构和数据不超过此大小。
- 复制到非 SQL Server 订阅服务器的表将采用订阅服务器中的数据库的表命名约定。
- 非 SQL Server 订阅服务器仅支持符合订阅服务器中的数据库语法的架构更改。有关架构更改的详细信息,请参阅对发布数据库进行架构更改。
复制功能支持
- SQL Server 提供了两种订阅类型:推送订阅和请求订阅。非 SQL Server 订阅服务器必须使用推送订阅,在这种订阅中,分发代理运行在 SQL Server 分发服务器中。
- SQL Server 提供了两种快照格式:本机 bcp 模式和字符模式。非 SQL Server 订阅服务器需要字符模式快照。
- 非 SQL Server 订阅服务器不能使用即时更新订阅或排队更新订阅,也不能作为对等拓扑中的节点。
- 非 SQL Server 订阅服务器不能从备份中自动初始化。