我的组织(一个小型的非营利组织)目前拥有一个带有SQL Server数据库的内部生产.NET系统。客户(我们所在地区的所有客户)都手动提交请求,我们的办公室工作人员随后将其输入系统。
我们正在准备实现在线公共访问,以便客户能够在线查看现有请求的状态,并且将来还能够在线创建新请求。将开发一个新的asp.net应用程序。
我们正在尝试决定是否在我们的服务器上现场托管此应用程序(可直接访问现有数据库)或使用外部托管服务提供商。 外部托管意味着在托管服务提供商的服务器上保留一份请求数据库。那么在托管数据库和现有生产数据库之间保持请求数据实时同步的推荐方法是什么?
答案 0 :(得分:1)
尝试在两个正在使用的数据库之间来回同步将是一个令人头疼的问题。我不得不问你的问题是,如果你有办法在现场托管申请,为什么不去那条路?
如果您有充分的理由不在网站上托管,但您确实可以使用某些Web基础结构,则可能需要考虑创建一个Web服务,该服务通过一组明确定义的方法提供对数据库的访问。或者,另一方面,您可以使用您的网站远程托管数据库作为生产数据库,并使用Web服务从您的办公系统访问它。
在任何一种情况下,提供对单个数据库的访问都比试图保持两个不同的数据库不断完美同步更容易。
答案 1 :(得分:0)
最终数据是相同的,客户提交的数据。目前它正由他们通过您输入,最终将由他们直接输入,我认为没有必要拥有两个具有相同数据的不同数据库。只有复制错误弹出(并且会出现),对你的团队来说将是一件令人头疼的事。
答案 2 :(得分:0)
如果Web服务不实用(或者您担心可用性),您可能需要考虑排队系统进行同步。对db(本地或托管)的任何更改也会添加到消息传递队列中。每一方都监视队列中是否需要进行更改,然后应用更改。这将导致其中一个数据库在任何给定时间都不可用。
话虽如此,我同意@LeviBotelho,同步两个db是一场噩梦,如果可以,应该避免。如果必须,您还可以查看SQL Server复制。