以下的文章主要向大家描述的是SQL Server 浏览器的实际工作原理,我们大家都知道SQL Server Browser 作为 Windows 操作系统的服务在服务器上运行。SQL Server Browser 侦听对 SQL Server 资源的传入请求,并提供计算机上安装的 SQL Server 实例的相关信息。
SQL Server Browser 可用于执行下列三种操作:
浏览可用服务器
连接到正确的服务器实例
连接到专用管理员连接 (DAC) 端点
SQL Server Browser 服务 (sqlbrowser) 为数据库引擎的每个实例提供实例名称和版本号。SQL Server Browser 随 SQL Server 2005 一起安装,为该计算机上运行的早期版本的 SQL Server(从 SQL Server 7.0 开始)提供帮助。
默认情况下,不为 SQL Server Express 启用 SQL Server Browser 服务。SQL Server Browser 可以使用外围应用配置器工具进行初始配置,并使用 SQL Server 配置管理器进行管理。
背景
在 SQL Server 2000 之前,一台计算机上只能安装一个 SQL Server 实例。SQL Server 侦听 1433 端口传入的请求,此端口由官方的 Internet 号码分配机构 (IANA) 分配给 SQL Server。只有一个 SQL Server 实例可以使用端口,因此当 SQL Server 2000 引入对 SQL Server 多个实例的支持时,便开发了 SQL Server 解析协议 (SSRP),用于侦听 1434 端口。此侦听器服务用已安装的实例的名称以及实例使用的端口或命名管道来响应客户端请求。
为解决 SSRP 系统的限制,SQL Server 2005 提供了 SQL Server Browser 服务来替代 SSRP。
SQL Server 浏览器工作原理
启动一个 SQL Server 实例后,如果为 SQL Server 启用了 TCP/IP 或 VIA 协议,服务器将被分配一个 TCP/IP 端口。如果启用了命名管道协议,SQL Server 将侦听特定的命名管道。该特定实例将使用此端口或管道与客户端应用程序交换数据。
在安装过程中,1433 端口和管道 sqlquery 将分配给默认实例,但服务器管理员可以随后使用 SQL Server 配置管理器进行更改。由于只有一个 SQL Server 实例可以使用端口或管道,因此,会将不同的端口号和管道名称分配给命名实例,包括 SQL Server Express。
默认情况下,命名实例被配置为使用动态端口,因此在启动 SQL Server 时分配可用的端口。可以为 SQL Server 实例分配特定端口。连接时,客户端可以指定所需端口。但是如果端口是动态分配的,端口号可能会在重新启动 SQL Server 时被更改,因此正确的端口号对于客户端来说是不确定的。
启动后,SQL Server Browser 将启动并使用 UDP 1434 端口。SQL Server Browser 将读取注册表,识别计算机上的所有 SQL Server 实例,并注明它们使用的端口和命名管道。当一台服务器具有两个或多个网卡时,SQL Server Browser 会为 SQL Server 返回启用的所有端口。SQL Server 2005 和 SQL Server Browser 支持 ipv6 和 ipv4。
如果 SQL Server 2000 和 SQL Server 2005 客户端请求 SQL Server 资源,客户端网络库将使用 1434 端口向服务器发送一条 UDP 消息。SQL Server Browser 将用请求的实例的 TCP/IP 端口或命名管道做出响应。然后,客户端应用程序中的网络库将使用所需实例的端口或命名管道向服务器发送请求来完成连接。
以上的相关内容就是对SQL Server 浏览器的工作原理的介绍,望你能有所收获。
【编辑推荐】