3

我的组织(一个小型​​非营利组织)目前有一个带有 SQL Server 数据库的内部生产 .NET 系统。客户(我们地区的所有本地人)手动提交请求,然后我们的办公室工作人员将其输入系统。

我们现在正在为在线公共访问做准备,以便客户能够在线查看他们现有请求的状态,并且将来还能够在线创建新请求。将为此开发一个新的 asp.net 应用程序。

我们正在尝试决定是在我们的服务器上现场托管此应用程序(直接访问现有数据库)还是使用外部托管服务提供商。在外部托管意味着在托管服务提供商的服务器上保留一份 Requests 数据库的副本。那么,在托管数据库和我们现有的生产数据库之间保持请求数据实时同步的推荐方法是什么?

4

3 回答 3

1

尝试在两个正在使用的数据库之间来回同步将是一个经常令人头疼的问题。我要问你的问题是,如果你有办法在现场托管应用程序,你为什么不走那条路?

如果您有充分的理由不在现场托管,但您确实有一些可用的 Web 基础设施,您可能需要考虑创建一个 Web 服务,该服务通过一组明确定义的方法提供对您的数据库的访问。或者,另一方面,您可以将与您的网站远程托管的数据库作为您的生产数据库,并使用 Web 服务从您的办公系统访问它。

在任何一种情况下,提供对单个数据库的访问都将比尝试保持两个不同的数据库不断且完美地同步要容易得多。

于 2013-01-28T20:57:34.457 回答
1

如果 Web 服务不实用(或者您担心可用性),您可能需要考虑使用排队系统进行同步。对数据库(本地或托管)的任何更改也会添加到消息传递队列中。每一方都监视队列中需要进行的更改,然后应用更改。这将解释在任何给定时间都不可用的数据库之一。

话虽如此,我同意@LeviBotelho,同步两个数据库是一场噩梦,如果可以的话,应该避免。如果必须,您还可以查看 SQL Server 复制。

于 2013-01-28T22:38:35.693 回答
0

最终数据是一样的,客户提交的数据。目前是他们通过你输入的,最终还是他们直接输入的,我看没必要有两个不同的数据库有相同的数据。仅当它们会弹出(并且它们会)出现复制错误时,您的团队将毫无头绪。

于 2013-01-28T21:05:28.547 回答