SQL VM 和主机之间的链接服务器配置

SQL Linked server configuration between VM and Host

我正在尝试在两台 SQL 服务器之间设置一个 link,一台在我的笔记本电脑上,第二台 运行 在同一台笔记本电脑的虚拟机上。但是我遇到了一些令人沮丧的行为。

设置为:

  1. 主机:W10 x64 企业版,SQL Server 2019,开发人员。 Windows防火墙关闭

  2. VM:W7 Pro x64,SQL Server 2014,Express。 Windows 防火墙关闭

使用此设置我可以:

  1. 从主机 Ping 虚拟机
  2. 从虚拟机 Ping 主机
  3. 从主机,使用 SQL management studio 连接到 VM 上的 SQL 实例
  4. 从 VM,使用 SQL management studio 连接到主机上的 SQL 实例
  5. 从主机创建到 VM 的链接服务器(使用新建链接服务器...向导)

但我不能做的是从 VM 使用相同的 linked 服务器向导创建到主机的链接服务器。发生的事情是我在登录过程中收到超时错误。

我使用的凭据与通过管理工作室连接时使用的凭据相同。我已尝试将 linked 服务器创建为 "SQL Server" 和 "Other data source"(使用 SQLNCLI 提供程序),但两种方法均无效。

可能导致此超时的原因:

难道是:

  1. 不同的SQL版本?

  2. Express 和 Developer 版本的区别? (我知道我可以在 2 个不同的 Express 2012 实例之间创建服务器 links)

  3. 我完全缺少的东西?

原来是“3.我完全没有的东西”

一些背景知识。为了 support/test 我办公桌上的各种网络模型,我所有计算机的硬件以太网端口都配置为响应两个不同的子网:192.168。0.xxx(用作 5 台不同计算机之间的主要传输) 和 192.168.100.xxx(用于测试各种联网硬件)。

在我的问题中描述的设置中,我有以下 IP 地址:

Host: Primary: 192.168.0.99    Secondary: 192.168.100.80
VM:   Primary: 192.168.100.78

因为 VM 只需要与 192.168.100 子网上的主机通信,所以我只给了它一个(主)IP 地址。这提供了足够的网络连接,我可以执行问题中提到的所有任务(并在链接服务器任务上失败)

事实证明,解决方案只是更改 VM 的主要和次要 IP 地址,以便它们位于为主机的主要和次要 IP 地址配置的匹配子网上。例如:

 Host: Primary: 192.168.0.99 Secondary: 192.168.100.80 
 VM:   Primary: 192.168.0.49 Secondary: 192.168.100.78

因此我给了虚拟机一个它并不真正需要的 IP 地址。完成此操作后,我可以立即创建一个从 VM 到主机的链接服务器。

主从地址匹配子网的要求似乎是 Windows 网络与 SQL 服务器相结合的产物。我在尝试使用另一个 Windows 10 盒进行测试时发现了它,并且出现了与我最初对 VM 相同的症状。