乍一看,这可能与在同一台计算机上安装 SQL Server 2000 和 SQL Server 2008,但事实并非如此。
我在同一台机器上安装了 SQL Server 2000 和 SQL Server 2008 R2,并且运行良好。
我的问题在于从远程计算机连接到 2008 R2 服务器。我的连接需要是 TCP。旧版安装或 SQL 2000 使用默认端口 1433。命名实例默认配置为使用“共享内存”,并且运行良好。当我将 2008 R2 服务器配置为使用 1433(我没有仔细考虑)时,服务拒绝启动,因为 1433 已被旧版 SQL 2000 默认实例使用。哎呀!
我想要做的是通过 TCP 同时使用两个服务器。两个服务器不需要在同一个端口上,如果我不能在同一个端口上运行它们,那么我该如何配置客户端?
有没有某种可用的代理可以监控 1433 端口并按名称将请求传递到正确的 SQL 实例?此功能是否已内置到 SQL 服务器中?
谢谢,
吉姆
答案1
通常可以在客户端的连接字符串中指定所需的端口。
在 sqlservername 后添加:port (例如 sqlserver:2468)。
然后,您需要通过配置管理器工具(SQL Server 2008)或 SQL Server 客户端网络实用程序(SQL 2000)修改 SQL Server 的一个监听端口,并重新启动 SQL Server 服务以使其生效。
希望这可以帮助。
西蒙
答案2
正如 OP 所假设的,SQL 浏览器服务将协助将传入的客户端连接到特定的命名实例。
通过在本地测试 SQL Browser 服务,确保其正常运行。如果本地连接正常,而远程计算机连接不正常,则问题通常出在防火墙上,可能是本地软件防火墙,也可能是运行在交换机等网络硬件上的防火墙。