首页  编辑  

开发和管理数据库复制


开发和管理数据库复制

本部分说明Oracle和Microsoft SQL Server复制支持之间的差别。

SQL Server实现了快照复制来代替Oracle的只读快照。它的名字已经暗示了,快照复制为数据库中发布的数据在某一瞬间照一张相,或者叫做快照。快照复制比事务复制要求的处理器开销要小,因为它并不需要对服务器上的数据变化做连续的监视。订户通过数据集合的完全更新来更新,而不是通过拷贝INSERT、 UPDATE和DELETE语句(事务复制的特征),或者数据修改(合并复制的特征)。因此,快照复制将把所有的数据发送给订户,而不是仅仅发送那些改变过的数据。

SQL Server也提供了事务复制,这种类型的复制将为复制标记发布者数据事务日志中的选定事务,然后以异步方式把这些事务发送给订户作为增量变化,同时维持事务连贯性。

SQL Server提供了合并复制来代替Oracle的可更新快照和Oracle的多主体复制模型。合并复制是这样一种复制,它允许站点为复制数据做自洽变化,稍后,合并在所有站点上的变化。合并复制不能保证事务连贯性。

SQL Server提供了多相复制,这是发布数据到多个订户的最简单的方法,这种方法使用ODBC和创建一个从发布者到ODBC订户的“推”订阅。作为替换,你可以创建一个发布,然后创建一个有嵌入式的分布控制的应用程序。嵌入式的控制实现一个从订户到发布者的“拉”订阅。对于ODBC订户,订阅的数据库是没有关于要执行的复制的管理能力的。

ODBC和复制

一个分布服务器作为一个ODBC客户连接到所有的订阅服务器。复制需要在所有的分布服务器上安装32位的ODBC驱动程序。SQL Server安装程序在基于Windows NT的计算机上自动安装需要的驱动程序。

你不需要为SQL Server订阅服务器预先配置ODBC数据源,因为分布处理简单的使用订户的网络名称来建立连接。

SQL Server还包括一个支持到SQL Server的Oracle订阅的ODBC驱动程序。这个驱动程序只能在基于Intel的计算机上使用。要复制到Oracle ODBC订户,你必须从Oracle或者你的软件供应商那里获取合适的Oracle SQL*Net驱动程序。

如果在Windows NT注册项中提供了口令,则Oracle ODBC驱动程序到Oracle的连接不再需要口令。如果注册项中没有提供口令,在SQL Server Enterprise Manager的New ODBC Subscriber对话框中指定DSN时,你必须为Oracle ODBC数据源提供用户名和口令。

当复制到一个Oracle ODBC订户时使用下面的限制。

  • datetime数据类型映射为DATE。Oracle DATE数据类型的范围是从4712 B.C.到4712 A.D.如果你正复制到Oracle,检查复制列中的SQL Server datetime条目是否在这个范围之内。
  • 被复制的表只能有一个text或者image列。
  • datetime数据类型映射为Oracle CHAR数据类型。
  • SQL Server的floatreal数据类型的范围同Oracle中的不同。
  • 其他ODBC订户类型的驱动程序必须符合SQL Server对类属的ODBC订户的复制要求。ODBC驱动程序:
  • 必须是ODBC一级兼容。
  • 必须是32位的并且对于分布处理运行于其上的处理器结构是线程安全的。
  • 必须有事务能力
  • 必须支持数据定义语言(DDL)
  • 不能是只读的。

久的。如果某个资源管理器或者事务管理器失败了,则当它们重新连接上的时候,就能在那个拿不准的事务上协调了。