您可以在一台服务器上拥有两个 SQL 实例,每个实例都有一个 IP 用于本地网络访问吗?

您可以在一台服务器上拥有两个 SQL 实例,每个实例都有一个 IP 用于本地网络访问吗?

这是部分设置,但不确定我被要求 100% 实现什么。

1 server
2 instances of SQL Server
1 internal IP for each sql instance
1 external IP for each sql instance

两个实例都已安装并可从单独的 IP 进行远程访问,因此要通过 SSMS 连接,只需输入外部 IP、用户、密码即可连接。

SQL 实例 1

内部 IP:192.168.0.9
使用两个实例所在实际服务器的上述 IP,连接如预期

SQL 实例 2

内部 IP:192.168.0.10
再次使用上述 IP 和正确的用户名和密码进行连接,从同一个盒子运行两个实例

如果您尝试从同一网络上的另一台计算机连接到实例 2,则它指向 SQL 实例 1,而不是 2。连接的唯一方法是使用 IP\InstanceName

如果它们安装在同一个机器上,是否可以从它们自己的 IP 访问它们,或者是否必须使用实例名称。在安装实例的机器上可以正常工作,但网络上的其他机器不行

答案1

IP 地址或 DNS 名称仅解析至服务器。

在服务器本身上,调用按实例名称或端口号路由到相关实例

Server\Instance2
Server,1234
Server\Whatever, 1234 -- port overrides instance name

您可以为每台客户端机器设置客户端别名,但这是一种管理开销,我不推荐这样做。

因此,基本上,您不能将 SQL Server 实例绑定到 IP 地址。您需要实例名称或端口号。

答案2

我自己还没有测试过,但这可能有帮助。另一种方法是保留端口不变(1433),并使用第二个 IP 地址

1.首先,在主机上添加其他 IP 地址

2.配置 SQL Server 以使用新 IP

SQL Server 配置管理器是要使用的工具。通过使用 2008 版本,我可以看到我的机器上 2005 和 2008 实例的服务和协议。

默认情况下,SQL 会监听所有端口并动态确定使用哪个端口。我们需要停止这种行为,即将 SQL 安装限制到单个端口上的单个端口,以便实例可以共存。

在每个实例下打开 TCP/IP 的属性,设置“全部监听”= 否。设置所需的 IP 和端口,禁用除您选择的主 IP 之外的其他 IP 的监听。通过从所有 IP 的 TCP 动态端口中删除“o”来禁用动态端口(127.0.0.1 和“IPAll”除外),重新启动 SQL 服务。

相关内容