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

复制无法直接跨网络运行。 Microsoft 建议VPN或Web复制。后者让我感到效率低下(他们确实说<!>;注意:Web同步用于与便携式计算机,手持设备和其他客户端同步数据.Web同步不适用于大容量服务器到服务器应用QUOT。<!>)

前者,一个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吗?

有帮助吗?

解决方案

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

编辑:

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

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top