7

我们的用例是一个负责帐户、会话、许可证等的数据库——它需要在客户端启动时进行轮询,因此高可靠性至关重要。因此,我们希望在物理上独立的网络中跨不同服务器进行复制,以防整个数据中心发生故障。我已经成功设置了对同一网络中另一台服务器的推送订阅,所以这通常有效。这是我现在需要开始工作的与网络外部服务器的连接。

复制不能直接跨网络工作。Microsoft建议使用 VPN 或 Web 复制。后者让我觉得效率低下(他们确实说“注意:Web 同步是为与便携式计算机、手持设备和其他客户端同步数据而设计的。Web 同步不适用于大容量的服务器到服务器应用程序。”)

前者,VPN,可以工作,但我仍然认为它是一个不必要的复杂解决方案(更不用说增加的安全问题的可能性),以持续运行 VPN 连接。我宁愿只运行一个 SSH 隧道。然而,我找不到任何文章解释如何做到这一点,而不是关于 MySQL。

我在订阅者上设置了一个 SSH 服务器,并使用 PuTTY 建立了一个从<publisher>:1434到的隧道<subscriber>:1433。但是,我无法让 SQL Server Management Studio 以这种方式连接(我不确定它是否支持:端口语法)。我还在<publisher>的 SQL Server 配置管理器上设置了一个别名,其中@@servernameof<subscriber>指向localhost:1434. 连接到那个似乎也不起作用。

我使用了推送订阅选项,所以我认为发布者需要连接到订阅者,而不是相反。

两台服务器都使用默认实例,并在 Windows Server 2003 SP 2 上运行 SQL Server 2005 SP 2。订阅服务器上的 SSH 服务器是 freeSSHd 1.2.1。

这可能吗?有没有另一种方法可以利用 SSH 来假装机器存在于同一个网络中?还是我必须使用VPN?

4

3 回答 3

3

当您谈论服务器的不同位置时,这是否也意味着不同的域?您对 Web 复制的评论是正确的,但仅适用于对数据库所做的日常更改。您的初始快照可以是任意大小,即使它是一个巨大的数据库。如果您的每日更新是有限的(对我来说几 1000 次似乎没问题),那就去吧。很快!

编辑:

当您开始考虑在服务器之间交换数据时,存在一个主要的域/安全问题。如果您需要通过 VPN 或任何专用链接连接属于不同域的服务器,并且如果您不想通过 SQL 安全(避免它!),您将面临与域信任相关的特定(和许可!)问题. Web 复制的聪明之处之一是通过通过 https 协议保护连接来避免此类问题(和额外成本)。

于 2008-10-28T09:29:49.533 回答
1

我知道这是一篇旧文章,但希望这会有所帮助:SQL Server Management Studio 使用逗号将主机与端口分开。

如何在 SQL Management Studio 中指定不同的端口号?

于 2012-10-18T23:30:51.387 回答
1

作为从业者,我认为 SSH 隧道(它允许客户端调用自身以调用服务器)不会起作用。如果您打开 ssh 隧道,您可能需要保持 ssh 会话打开。SSH 不适合将长时间打开的连接作为第一优先级,它会失败。

最好的选择是一个合适的虚拟专用网络(不是那些来自互联网的代理服务器每年向您收取 10 美元)。如果您想节省成本,可以使用 OpenVPN。VPN 的好处是所有这些节点(数据库服务器)都可以假装它们在同一个本地网络中并且......它会工作。

于 2019-09-03T04:45:02.623 回答