SQL Server命名实例迁移至默认实例后,遗留应用连接问题求助
SQL Server实例迁移后的别名连接问题解决方案
不需要在新服务器
问题根源
你当前的配置错误在于SQL Native Client别名配置在了目标服务器端,但这类别名是客户端侧的配置——客户端连接时会先解析连接字符串,只有客户端机器上的别名才能改变<SERVER1\INS1>的指向逻辑。
当你用<SERVER1\INS1>连接时,客户端会先通过DNS把<SERVER1>解析到<SERVER2>,然后尝试连接<SERVER2>上的<SERVER1>连接时,客户端直接连接<SERVER2>的默认实例,所以成功。
正确解决方案
方案1:客户端侧配置完整实例别名
在所有遗留应用所在的客户端机器上,分别配置32位和64位的SQL Native Client别名:
- 打开对应版本的
SQL Server Configuration Manager(32位版本通常在C:\Windows\SysWOW64\SQLServerManager12.msc,对应SQL Server 2014) - 展开「SQL Native Client 11.0 配置」→「别名」
- 右键新建别名:
- 别名名称:
SERVER1\INS1 - 协议:选择「TCP/IP」
- 服务器:
SERVER2 - 端口:
1433
- 别名名称:
- 保存配置后,客户端的
<SERVER1\INS1>连接字符串会直接指向的默认实例。
方案2:结合DNS的简化别名配置
如果已经配置了DNS别名<SERVER1>指向<SERVER2>,可以在客户端配置更简洁的别名:
- 别名名称:
INS1 - 协议:TCP/IP
- 服务器:
SERVER1 - 端口:
1433
这样客户端连接<SERVER1\INS1>时,会把实例名<INS1>映射到<SERVER1>(即)的1433端口,同样能连接到默认实例。
验证方法
配置完成后,在客户端机器上打开SSMS,输入SERVER1\INS1尝试连接,若能成功连接到
内容的提问来源于stack exchange,提问作者Jon Stabile
相关产品推荐
相关产品推荐

