【问题标题】:SQL Server 2005/2008 International Real-Time AvailabilitySQL Server 2005/2008 国际实时可用性
【发布时间】:2009-05-01 15:44:05
【问题描述】:

我的公司最近在新加坡开设了办事处。我使用 SQL Server 2005 后端开发我们内部用于管理公司的 Web 应用程序。由于从新加坡通过网络访问速度较慢,我们向他们运送了一个服务器,该服务器将托管 Web 应用程序和数据库的本地副本,我们希望保持他们的本地版本的数据库与我们的同步。美国app和新加坡app都可以读写数据。

合并复制是解决这个问题的正确方法吗?这是我一直在调查的路径,它似乎最适合我们想要的。 SQL Server 2008 中有更好的东西吗?您为国际合作实施了哪些类型的数据库可用性解决方案?

【问题讨论】:

    标签: sql-server database replication data-synchronization


    【解决方案1】:

    如果两个位置的某些人必须更新任何数据,则可以使用合并复制。但是……

    如果出现以下情况,我建议使用点对点复制:

    • Office1(美国?)只需要更新/删除 Office1 应用插入的记录。

    • Office2(新加坡)只需要更新/删除由 Office2 应用插入的记录。

    两个办公室都可以查询所有数据。

    引用: 在对等复制中,您需要了解的最基本概念是,每台服务器都包含所有数据,但每台服务器只负责更新自己的数据子集。因此,每台服务器都携带相同的模式,并且每台服务器都是其他服务器上发生的所有更改的订阅者,同时也是其自己更改数据的发布者。当一台服务器上的数据发生变化时,这些变化会传递给对等网络中的所有订阅者。每个服务器都包含和更新特定于其地理位置的数据,并且还可以查看来自其他位置的所有数据。对等复制的一个关键部分是每个服务器负责更改自己的数据集,并且没有其他位置可以更改该数据集中的任何数据。如果违反此规则,则可能会在两个地方更改数据,并且由于站点之间没有数据锁定,因此在复制数据时,最终可能会出现不一致的结果。

    您可以在此处找到更多信息: http://www.sqlmag.com/Article/ArticleID/49241/sql_server_49241.html

    http://technet.microsoft.com/en-us/magazine/2006.07.insidemsft.aspx

    http://www.sql-server-performance.com/articles/dba/peer-to-peer_replication_p1.aspx

    如何实现。

    必须从您必须复制的两个位置更新的表,例如:

    TableOrders1 (OrderID int IDENTITY(1,2) NOT NULL, Col1 int, Col1 nvarchar(), etc.) 
    TableOrders2 (OrderID int IDENTITY(2,2) NOT NULL, Col1 int, Col1 nvarchar(), etc.) 
    

    然后您将数据从 TableOrders1 发送到 Office2,将数据从 TableOrders2 发送到 Office1,使用对等复制等等……

    要查询数据,您可以创建一个视图。

    【讨论】:

      猜你喜欢
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 2013-10-23
      • 1970-01-01
      • 2010-10-25
      相关资源
      最近更新 更多