el_*_*rom 6 sql-server clustering sql-server-2012 windows-server
我在这里有一个小问题:我在集群上有一个 SQL Server 实例 2012(我们称之为 SQLINSTANCE)。对于这个实例,我还有 2 个网络接口:
- SQLINSTANCE.my.network
- SQLINSTANCE.mgt.my.network.
Run Code Online (Sandbox Code Playgroud)
我的实例侦听特定端口1550.
如果我想连接到它,这是我的结果:
- SQLINSTANCE.my.network\INSTANCE: working
- SQLINSTANCE.mgt.my.network\INSTANCE: NOT working.
Run Code Online (Sandbox Code Playgroud)
我的猜测是它涉及 SQL 浏览器,但我找不到如何告诉它需要侦听两个地址。
我正在使用没有防火墙的 Windows Server 2008r2。这两个地址都被设置为集群管理器中 SQL Server 的资源。
这是我们在我工作的地方使用的设置类型。
为了提供更好的示例,我假设您的别名(CNAME)配置如下:
SQLINSTANCE.my.network -> 192.168.1.30
SQLINSTANCE.mgt.my.network -> 10.0.0.1
Run Code Online (Sandbox Code Playgroud)
然后启动SQL Server 配置管理器,导航到SQL Server 网络配置分支并打开SQLINSTANCE的协议(我的图片显示 MSSQLSERVER 作为实例名称),然后右键单击并打开TCP/IP 属性您将看到类似于以下屏幕截图的屏幕:
在对话框中,确保设置了 TCP/IP 属性并设置Enabled : Yes了Listen All : No选项,因此它看起来像以下屏幕截图:
然后您切换到IP 地址注册并找到您的第一个 IP 地址。在本例中,第一个 IP (192.168.0.30) 的设置位于 IP2 部分。它看起来像这样:
确保该选项Enabled : Yes已设置且 IP 地址正确且TCP Port : 1550已设置为您的保留端口。
对另一个 IP 地址执行相同操作。找到 IP 部分(例如此屏幕截图中的 IP4)并进行相应设置:
最后但并非最不重要的是,我们必须确保禁用动态端口。为此,向下滚动到IP 地址寄存器的底部并设置以下设置:
TCP 动态端口和TCP 端口设置都为空是很重要的!
完成后单击确定并重新启动您的 SQL Server 实例 SQLINSTANCE。您的 SQL Server 实例 SQLINSTANCE 现在将选择两个 IP 地址。
祝你好运!
我写了一篇问答风格的文章什么是 SSMS 登录框的有效连接字符串?它解释了您在连接到 SQL Server 及其实例时可能会遇到的一些设置。它还简要说明了 SQL Server Browser 服务仅在您不知道要连接的实际端口时才需要。增加了安全性吗?