Oracle 发布的工作机制
从 Oracle 9i 版和 SQL Server 2005 开始,使用 MicrosoftSQL Server 可以在复制拓扑中加入 Oracle 发布服务器。可在支持 Oracle 的任何硬件和操作系统上部署发布服务器。该功能建立在 SQL Server 快照复制和事务性复制的坚实基础上,提供了相似的性能和可用性。
Oracle 的快照复制
Oracle 快照发布与 SQL Server 快照发布在实现方式上类似。对 Oracle 发布运行快照代理时,该代理将连接到 Oracle 发布服务器,并处理发布中的每个表。处理每个表时,代理将检索表行并创建架构脚本,然后将该脚本存储在发布的快照共享中。每次运行快照代理时都会创建整个数据集,因此在事务复制中出现更改跟踪触发器时,不会将它们添加到 Oracle 表中。快照复制是迁移数据的一种便利方法,可以将对发布系统的影响降到最低。
有关快照复制的详细信息,请参阅快照复制的工作机制。
Oracle 事务复制
Oracle 事务发布是通过使用 SQL Server 的事务发布体系结构来实现的;但更改却是通过结合使用 Oracle 数据库上的数据库触发器和日志读取器代理来跟踪的。Oracle 事务发布的订阅服务器使用快照复制自动进行初始化;在以后发生更改时,将通过日志读取器代理对这些更改进行跟踪,并将更改传递到订阅服务器。有关 Oracle 发布服务器的更改跟踪的详细信息,请参阅 Oracle 发布服务器的事务复制工作流。
创建 Oracle 发布时,将为 Oracle 数据库中所有已发布的表创建触发器和跟踪表。对发布的表进行数据更改时,将激发这些表的数据库触发器,并在复制跟踪表中为修改的每一行插入信息。然后,SQL Server 分发服务器上的日志读取器代理将数据更改信息从跟踪表移动到分发服务器上的分发数据库中。最后,与在标准事务复制中一样,分发代理将更改从分发服务器移动到订阅服务器。
有关事务复制的详细信息,请参阅事务复制的工作机制。