我们的用例是一个负责帐户、会话、许可证等的数据库——它需要在客户端启动时进行轮询,因此高可靠性至关重要。因此,我们希望在物理上独立的网络中跨不同服务器进行复制,以防整个数据中心发生故障。我已经成功设置了对同一网络中另一台服务器的推送订阅,所以这通常有效。这是我现在需要开始工作的与网络外部服务器的连接。
复制不能直接跨网络工作。Microsoft建议使用 VPN 或 Web 复制。后者让我觉得效率低下(他们确实说“注意:Web 同步是为与便携式计算机、手持设备和其他客户端同步数据而设计的。Web 同步不适用于大容量的服务器到服务器应用程序。”)
前者,VPN,可以工作,但我仍然认为它是一个不必要的复杂解决方案(更不用说增加的安全问题的可能性),以持续运行 VPN 连接。我宁愿只运行一个 SSH 隧道。然而,我找不到任何文章解释如何做到这一点,而不是关于 MySQL。
我在订阅者上设置了一个 SSH 服务器,并使用 PuTTY 建立了一个从<publisher>:1434
到的隧道<subscriber>:1433
。但是,我无法让 SQL Server Management Studio 以这种方式连接(我不确定它是否支持:
端口语法)。我还在<publisher>
的 SQL Server 配置管理器上设置了一个别名,其中@@servername
of<subscriber>
指向localhost:1434
. 连接到那个似乎也不起作用。
我使用了推送订阅选项,所以我认为发布者需要连接到订阅者,而不是相反。
两台服务器都使用默认实例,并在 Windows Server 2003 SP 2 上运行 SQL Server 2005 SP 2。订阅服务器上的 SSH 服务器是 freeSSHd 1.2.1。
这可能吗?有没有另一种方法可以利用 SSH 来假装机器存在于同一个网络中?还是我必须使用VPN?