Sql Server复制:快照与合并

时间:2010-05-26 12:05:55

标签: sql-server sql-server-2008 replication

背景资料
假设我有两个数据库服务器,都是SQL Server 2008 一个是在我的局域网(ServerLocal)中,另一个是在远程托管环境(ServerRemote)上。

我在ServerLocal上创建了一个数据库,并在ServerRemote上拥有该数据库的精确副本。 ServerRemote上的数据库是Web应用程序的一部分,我想让它的数据与数据库ServerLocal中的数据保持同步。

ServerLocal能够与ServerRemote通信,这是单向流量。从ServerRemote到ServerLocal的通信不可用。

当前解决方案
我认为使用复制是一个很好的解决方案。所以我让ServerLocal成为发布者,订阅被推送到ServerRemote。这很好,当快照转移到ServerRemote时,现有数据将被清除,ServerRemote数据库再次成为ServerLocal上数据库的精确副本。

问题
ServerRemote上存在的ServerLocal上不存在的记录将被删除。这对我的大多数表都无关紧要,但在我的一些表中我想保留现有数据(例如aspnet_users),并在必要时更新记录。

什么样的复制符合我的问题?

1 个答案:

答案 0 :(得分:0)

选项C:交易复制。

在您在订阅数据库中拥有数据并且不希望它被快照覆盖之前,我已经完成了这项工作。您可以将初始快照设置为不删除现有记录,也不要创建发布者中的记录(假设它们在那里)或创建发布者中的记录(假设它们不存在)。

查看一下您的具体情况是正确的,或者留下评论,详细说明您最初如何在订阅者中获取数据。我对aspnet_users不太熟悉,那是什么。只有在您不希望订阅者中的数据返回发布者时,事务复制才有用。如果您需要,则必须进行合并复制。