使sql server实例远程可用的最佳方法?链接服务器还是复制?其他

本文关键字:服务器 链接 其他 复制 方法 最佳 server sql 实例 程可用 | 更新日期: 2023-09-27 18:17:03

我和一个同事正在开发一些药学软件(c#),用于管理患者档案、患者药物处方等。所有这些不同的数据集都存储在sql server数据库中(我们使用的是2008标准,但未来版本也可以)。每个存储在本地机器上都有自己的sql server实例。

我们的目标:

如果需要的话,我们希望"商店A"能够访问"商店B"的数据库。基本上是在药房客户出城并访问其他药房分支机构的情况下。

我想过的事情:

  1. 我最初的想法是基本上保持sql server的在线服务器实例,可以通过dns链接(或IP)访问。我试图找出最好的方法来保持这些同步,我遇到了sql server复制。问题是,我本来打算使用事务性复制来更新订阅者,但由于它已被弃用,它不再是一个真正的长期选择。微软建议使用p2p复制,但这需要企业版,如果可以的话,我们真的在尽量避免这种情况。我想使用事务性复制,因为它在保持记录一致性方面做得更好(不必等待合并代理作业每小时运行一次之类的事情)。

  2. 我最近想到的是可能有一个基于互联网的sql server实例,它只包含链接服务器回到每个存储本地机器。如果其他商店直接在本地机器上工作,我就不必担心同步问题。但我读过很多人说这是一个可怕的安全漏洞所以我不确定这是不是一个合理的想法但我想也许有办法让它工作?

无论如何,这就是我们要做的基本要点。我不知道复制服务器还是链接服务器是更好的选择。

编辑:

双向复制呢?我读了一些这方面的资料,但我不确定这是不是我需要的。我不想在服务器之间错开主键,因为它们对于识别处方号和诸如此类的东西非常重要。但如果我能做双向复制,那也会很好。

使sql server实例远程可用的最佳方法?链接服务器还是复制?其他

不是真正的答案,但是我有更多的空间…

SQL Azure是SQL Server的"云"版本。VPN是一种通过互联网创建自己的专用网络的方法。对这些术语做一些研究。如今,许多应用程序正在转向云计算。你应该认真考虑没有互联网的可能性。

关于复制,如果你拥有这个应用程序并且你很乐意支持它,你可以"滚动你自己的"复制。

基本前提是:

  1. 在每个表上创建一个触发器,将每个更改的PK写入日志表
  2. 创建一个进程,管理使用订阅者和发布者复制和合并仅更改的信息(基于日志表)