关于SQL Server Browser服务

这个服务是SQL Server 2005新增的。

简单的说,SQL Server Browser 侦听对 SQL Server 资源的传入请求,并提供计算机上安装的 SQL Server 实例的相关信息。如果一个物理服务器上面有多个SQL Server实例,那么为了确保客户端能访问到正确的实例,所以SQL Server 2005提供了一个新的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),用于侦听 UDP 1434 端口。此侦听器服务用已安装的实例的名称以及实例使用的端口或命名管道来响应客户端请求。为了解决 SSRP 系统的限制,SQL Server 2005 引入了 SQL Server Browser 服务来替换 SSRP。

 

SQL Server 浏览器工作原理


启动一个 SQL Server 实例后,如果为 SQL Server 启用了 TCP/IP 或 VIA 协议,服务器将被分配一个 TCP/IP 端口。如果启用了 Named Pipes 协议,SQL Server 将侦听特定的命名管道。该特定实例将使用此端口(或“管道”)与客户端应用程序交换数据。在安装过程中,TCP 1433 端口和管道 \sql\query 将分配给默认实例,但服务器管理员可以随后使用 SQL Server 配置管理器进行更改。由于只有一个 SQL Server 实例可以使用端口或管道,因此,会将不同的端口号和管道名称分配给命名实例,包括 SQL Server Express。默认情况下,命名实例和 SQL Server Express 在启用时便配置为使用动态端口,也就是说,当 SQL Server 启动时就分配了可用端口。如果需要,可以为 SQL Server 实例分配特定端口。连接时,客户端可以指定特定端口,但是如果端口是动态分配的,端口号可能会在重新启动 SQL Server 时被更改,因此正确的端口号对于客户端来说是不确定的。

启动后,SQL Server 浏览器将启动并使用 UDP 1434 端口。SQL Server 浏览器将读取注册表,识别计算机上的所有 SQL Server 实例,并注明它们使用的端口和命名管道。当一台服务器具有两个或多个网卡时,SQL Server 浏览器会为 SQL Server 返回其遇到的第一个已启用的端口。SQL Server 浏览器支持 ipv6 和 ipv4。

当 SQL Server 客户端请求 SQL Server 资源时,客户端网络库将使用 1434 端口向服务器发送一条 UDP 消息。SQL Server 浏览器将用请求的实例的 TCP/IP 端口或命名管道做出响应。然后,客户端应用程序中的网络库将使用所需实例的端口或命名管道向服务器发送请求来完成连接。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chen_xizhang/archive/2009/06/30/4310815.aspx

 

  并行安装 SQL Server 2000

  在 SQL Server 2000 中,通过 SQL Server 服务识别服务器连接端点。在 SQL Server 2005 中,该功能是通过 SQL Server Browser 服务实现的。如果在还运行 SQL Server 2000 或 MSDE 的计算机上安装 SQL Server,则必须将它们升级到 SP3 或更高版本。SP3 之前的版本无法正确共享 1434 端口,并且可能会使 SQL Server 实例不能用于请求客户端应用程序。尽管可以通过更改启动顺序,使 SQL Server Browser 服务在 SQL Server 2000 或 MSDE 之前启动,但建议您将所有较旧版本的 SQL Server 更新为最新的 Service Pack。

      在计算机中装有 SQL Server 2000 实例的情况下,如果 SQL Server Browser 未运行,将启动 SQL Server 2000 侦听器服务。如果 SQL Server Browser 在侦听器服务启动之后启动,将用 5 秒钟来等待 SQL Server 2000 放弃 1434 端口。如果未放弃该端口,SQL Server Browser 将无法启动。对于 SP3 之前的 SQL Server 2000 版本,若要解决此问题,需要停止 SQL Server 2000,启动 SQL Server Browser,然后重新启动 SQL Server 2000。SQL Server 2000 侦听器服务将继续尝试使用 1434 端口进行启动,因此应尽快将 SQL Server 2000 实例升级到 SP3。

     SQL Server Browser 使用 SQL Server 解析协议 (SSRP) 侦听 UDP 端口,并接受未经身份验证的请求。SQL Server Browser 应该在低特权用户的安全上下文中运行,以将受到恶意攻击的几率降到最低。默认情况下,使用本地系统帐户启动 SQL Server Browser。通过使用 Windows 服务程序可以更改登录帐户。

     若要与服务器上有防火墙保护的 SQL Server Browser 服务进行通信,除了打开 SQL Server 使用的 TCP 端口(如 1433)之外,还要打开 UDP 1434 端口。

 

 

posted @ 2010-07-19 14:38  laoding  阅读(251)  评论(0编辑  收藏  举报