0

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

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

4

1 回答 1

1

如果两个位置的某些人必须更新任何数据,则合并复制是一种可行的方法。但...

在以下情况下,我可以推荐使用点对点复制:

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

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

两个办事处都可以查询所有数据。

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

您可以在这里找到更多信息: 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,依此类推……</p>

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

于 2009-05-01T16:56:03.070 回答