Oracle 发布概述
适用于:SQL Server
从 Microsoft SQL Server 2005 (9.x) 开始,可以在复制拓扑中加入 Oracle 发布服务器(自 Oracle 9i 版起)。 可在支持 Oracle 的任何硬件和操作系统上部署发布服务器。 该功能建立在 SQL Server 快照复制和事务性复制的坚实基础上,提供了相似的性能和可用性。
SQL Server 支持下列异构场景的事务和快照复制:
将数据从 SQL Server 发布到非 SQL Server 订阅服务器。
将数据发布到 Oracle 以及从 Oracle 发布数据具有以下限制条件:
场景 | 2016 或更早版本 | 2017 或更高版本 |
---|---|---|
从 Oracle 复制 | 仅支持 Oracle 10g 或更早版本 | 仅支持 Oracle 10g 或更早版本 |
复制到 Oracle | 最高为 Oracle 12c | 不支持 |
不推荐异类复制到非 SQL Server 订阅服务器。 不推荐使用 Oracle 发布。 要移动数据,请创建使用变更数据捕获和 SSIS 的解决方案。
Oracle 的快照复制
Oracle 快照发布与 SQL Server 快照发布在实现方式上类似。 对 Oracle 发布运行快照代理时,该代理将连接到 Oracle 发布服务器,并处理发布中的每个表。 处理每个表时,代理将检索表行并创建架构脚本,然后将该脚本存储在发布的快照共享中。 每次运行快照代理时都会创建整个数据集,因此在事务复制中出现更改跟踪触发器时,不会将它们添加到 Oracle 表中。 快照复制是迁移数据的一种便利方法,可以将对发布系统的影响降到最低。
Oracle 事务复制
Oracle 事务发布是通过使用 SQL Server 的事务发布体系结构来实现的;但更改却是通过结合使用 Oracle 数据库上的数据库触发器和日志读取器代理来跟踪的。 Oracle 事务发布的订阅服务器使用快照复制自动进行初始化;在以后发生更改时,将通过日志读取器代理对这些更改进行跟踪,并将更改传递到订阅服务器。
创建 Oracle 发布时,将为 Oracle 数据库中所有已发布的表创建触发器和跟踪表。 对发布的表进行数据更改时,将激发这些表的数据库触发器,并在复制跟踪表中为修改的每一行插入信息。 然后,SQL Server 分发服务器上的日志读取器代理将数据更改信息从跟踪表移动到分发服务器上的分发数据库中。 最后,与在标准事务复制中一样,分发代理将更改从分发服务器移动到订阅服务器。