我的情况的事务复制或快照复制
Transactional Replication or Snapshot Replication For My Situation
我目前在一家公司做项目,公司有8个分公司,每个分公司都有自己的服务器。他们责成我将数据库合并为一个供总部使用。也许我很愚蠢,但我能想到的唯一方法是将每个数据库复制到总部。那么总部将有每个分支机构的8个数据库。问题是他们希望数据更改是实时的,所以我认为快照是行不通的。
所以我选择了交易,但从我的测试来看,我尝试先删除 HQ 数据库中的一些记录,然后我从 publisher/branches 中删除相同的记录。
当它尝试复制数据库时出现此错误,
"The row was not found at the Subscriber when applying the replicated
DELETE command for Table '[dbo].[repl_tbl]' with Primary Key(s): [id]
= 1 (Source: MSSQLServer, Error number: 20598)"
我发现的另一个问题是,如果我要将主键为“15”的新数据添加到我总部的分支数据库(目前尚不存在),然后我添加主键为“15”的数据branch/publisher 数据库的键 '15',现在这会导致
错误
"Violation of PRIMARY KEY constraint 'PK_repl_tbl'. Cannot insert
duplicate key in object 'dbo.repl_tbl'. The duplicate key value is
(13). (Source: MSSQLServer, Error number: 2627)"
我希望总部的数据会根据分支机构进行更改。
非常感谢任何建议。提前致谢。
如果更改必须实时反映在每一方并且要在发布者和订阅者上进行,那么您可能需要查看合并复制,而不是事务或快照:
合并复制有点复杂,如果发生任何问题,您不能简单地在发布服务器上重新初始化订阅,因为您将丢失订阅服务器上的非同步数据,就像本 中描述的问题一样。但是根据您的描述,这可能是一条路要走。
但是,合并、快照或事务复制主要处理单个已发布的表,然后处理整个数据库。如果您需要在总部提供来自分支机构的完整数据库,那么您可能需要先查看另一种称为 Always On Availability Groups. With AGs you can easily make remote DBs available for HQ but it requires Windows Failover Cluster 在分支机构和总部之间设置的技术。 AG 的局限性之一是辅助副本数据库是只读的。只能在主副本上进行更改。
HTH
我目前在一家公司做项目,公司有8个分公司,每个分公司都有自己的服务器。他们责成我将数据库合并为一个供总部使用。也许我很愚蠢,但我能想到的唯一方法是将每个数据库复制到总部。那么总部将有每个分支机构的8个数据库。问题是他们希望数据更改是实时的,所以我认为快照是行不通的。
所以我选择了交易,但从我的测试来看,我尝试先删除 HQ 数据库中的一些记录,然后我从 publisher/branches 中删除相同的记录。 当它尝试复制数据库时出现此错误,
"The row was not found at the Subscriber when applying the replicated DELETE command for Table '[dbo].[repl_tbl]' with Primary Key(s): [id] = 1 (Source: MSSQLServer, Error number: 20598)"
我发现的另一个问题是,如果我要将主键为“15”的新数据添加到我总部的分支数据库(目前尚不存在),然后我添加主键为“15”的数据branch/publisher 数据库的键 '15',现在这会导致
错误"Violation of PRIMARY KEY constraint 'PK_repl_tbl'. Cannot insert duplicate key in object 'dbo.repl_tbl'. The duplicate key value is (13). (Source: MSSQLServer, Error number: 2627)"
我希望总部的数据会根据分支机构进行更改。
非常感谢任何建议。提前致谢。
如果更改必须实时反映在每一方并且要在发布者和订阅者上进行,那么您可能需要查看合并复制,而不是事务或快照:
合并复制有点复杂,如果发生任何问题,您不能简单地在发布服务器上重新初始化订阅,因为您将丢失订阅服务器上的非同步数据,就像本
但是,合并、快照或事务复制主要处理单个已发布的表,然后处理整个数据库。如果您需要在总部提供来自分支机构的完整数据库,那么您可能需要先查看另一种称为 Always On Availability Groups. With AGs you can easily make remote DBs available for HQ but it requires Windows Failover Cluster 在分支机构和总部之间设置的技术。 AG 的局限性之一是辅助副本数据库是只读的。只能在主副本上进行更改。
HTH