我的公司最近在新加坡开设了一个办事处。我在使用SQL Server2005后端开发我们内部用于管理公司的web应用程序。由于来自新加坡的网络访问速度很慢,我们正在向他们发送一台服务器,该服务器将托管web应用程序和数据库的本地副本,我们希望使他们的本地数据库版本与我们的保持同步。美国应用程序和新加坡应用程序都可以读/写数据。
合并复制是这个问题的正确解决方案吗?这是我一直在研究的路径,它似乎最适合我们想要的东西。SQL Server 2008中有没有更好的功能?您为国际协作实施了哪种类型的数据库可用性解决方案?
发布于 2009-05-01 16:56:03
如果这两个位置的某些人必须更新任何数据,则合并复制是可行的。但是..。
在以下情况下,我建议使用点对点复制:
两个办公室都可以查询所有数据。
引用:在对等复制中,您需要理解的最基本概念是,每台服务器都包含所有数据,但每台服务器只负责更新自己的数据子集。因此,每个服务器都具有相同的模式,并且每个服务器都是其他服务器上发生的所有更改的订阅者,同时又是其自身已更改数据的发布者。当一台服务器上的数据发生更改时,这些更改将发布到对等网络中的所有订阅者。每台服务器都包含并更新特定于其地理位置的数据,还可以看到来自其他位置的所有数据。对等复制的一个关键部分是,每个服务器负责更改自己的数据集,其他任何位置都不能更改该数据集中的任何数据。如果违反此规则,数据可能会在两个位置更改,并且由于站点之间没有数据锁定,因此当复制数据时,您可能会得到不一致的结果。
更多信息可以在这里找到: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,依此类推
要查询数据,您可以创建一个视图。
https://stackoverflow.com/questions/811928
复制相似问题