我可以通过 SSH 隧道进行 SQL Server 2005 合并复制吗?
Posted
技术标签:
【中文标题】我可以通过 SSH 隧道进行 SQL Server 2005 合并复制吗?【英文标题】:Can I do SQL Server 2005 merge replication through an SSH tunnel? 【发布时间】:2010-09-19 04:07:22 【问题描述】:我们的用例是一个负责帐户、会话、许可证等的数据库——它需要在客户端启动时进行轮询,因此高可靠性至关重要。因此,我们希望在物理上独立的网络中跨不同服务器进行复制,以防整个数据中心发生故障。我已经成功设置了对同一网络中另一台服务器的推送订阅,所以这通常有效。我现在需要连接到网络外部的服务器。
复制不能直接跨网络工作。微软suggests either a *** or web replication。后者让我觉得效率低下(他们确实说“注意:Web 同步是为与便携式计算机、手持设备和其他客户端同步数据而设计的。Web 同步不适用于大容量的服务器到服务器应用程序。”)
前者,***,可以工作,但我仍然认为它是一个不必要的复杂解决方案(更不用说增加的安全问题的可能性),以持续运行 *** 连接。 我宁愿只运行一个 SSH 隧道。 但是,我找不到任何文章解释如何执行此操作并且与 mysql 无关。
我在订阅服务器上设置了 SSH 服务器,并使用 PuTTY 建立了从 <publisher>:1434
到 <subscriber>:1433
的隧道。但是,我无法让 SQL Server Management Studio 以这种方式连接(我不确定它是否支持 :
端口语法)。我还在<publisher>
的SQL Server 配置管理器上设置了一个别名,@@servername
的<subscriber>
指向localhost:1434
。连接到那个似乎也不起作用。
我使用了推送订阅选项,所以我认为发布者需要连接到订阅者,而不是反过来。
两台服务器均使用默认实例,并在 Windows Server 2003 SP 2 上运行 SQL Server 2005 SP 2。订阅服务器上的 SSH 服务器为 freeSSHd 1.2.1。
这可能吗?有没有另一种方法可以利用 SSH 假装机器存在于同一个网络中?还是我必须使用 ***?
【问题讨论】:
我在回答中添加了一些关于这个域问题的文字 【参考方案1】:当您谈到服务器的不同位置时,是否也意味着不同的域?您对 Web 复制的评论是正确的,但仅适用于对数据库所做的日常更改。您的初始快照可以是任意大小,即使它是一个巨大的数据库。如果您的每日更新是有限的(对我来说几 1000 次似乎没问题),那就去吧。很快!
编辑:
当您开始考虑在服务器之间交换数据时,存在一个主要的域/安全问题。如果您需要通过 *** 或任何专用链接连接属于不同域的服务器,并且如果您不想通过 SQL 安全(避免它!),您将面临与域信任相关的特定(和许可!)问题. Web 复制的聪明之处之一是通过 https 协议保护连接来避免此类问题(和额外费用)。
【讨论】:
域是相同的(虽然我看不出有什么不同),但网络是完全独立的。我会研究网络复制,看看是否足够好,谢谢!【参考方案2】:我知道这是一篇旧帖子,但希望这会有所帮助:SQL Server Management Studio 使用逗号将主机与端口分开。
How do you specify a different port number in SQL Management Studio?
【讨论】:
【参考方案3】:作为一名从业者,我认为 SSH 隧道(它允许客户端调用自身以调用服务器)不会起作用。如果您打开 ssh 隧道,您可能需要保持 ssh 会话打开。 SSH 不适合将长时间打开的连接作为第一优先级,它会失败。
最好的选择是一个合适的虚拟专用网络(而不是那些来自互联网的代理服务器每年向您收取 10 美元)。如果您想节省成本,可以使用 Open***。 *** 的好处是所有这些节点(数据库服务器)都可以假装它们在同一个本地网络中并且......它会工作。
【讨论】:
以上是关于我可以通过 SSH 隧道进行 SQL Server 2005 合并复制吗?的主要内容,如果未能解决你的问题,请参考以下文章