SQL Server Browser工作原理
SQL Server 2008由两个部分组成:服务器端组件和客户端工具。
服务器组件是以 Windows 服务的方式运行的,它们在操作系统内核加载完成后便开始加载,在用户没有登录的情况下就开始运行:
Distributed Transaction Coordinator
SQL Server Active Directory Helper
SQL Full-text Filter Daemon Launcher (MSSQLServer) 或者 ??
SQL Server(MSSQLServer) 或者 MSSQL$实例名
SQL Server Agent(MSSQLServer) 或者 SQLAgent$实例名
MSSQLServerOLAPService 或者 MSOLAP$实例名
SQL Server Browser
SQL Server Integration Services 10.0
Report Server 或者 ReportServer$实例名
SQL Server VSS Writer
Windows服务(services.msc)中对各个功能有详细描述,这里主要说下SQL Server浏览器的作用:http://msdn.microsoft.com/zh-cn/library/ms181087.aspx (MSDN解释)
总结下就是:SQL Server默认实例是默认为1433端口的,客户端程序是默认也是连接到此端口的。但是如果默认端口被更改,或者要连接到命名实例,但是又不知道它们的端口号,又或者说端口号在SQL Server每次重启后是动态分配的,那怎么办呢?? 在端口静态的情况下,可以在客户端连接中指定PORT。但是,若端口动态分配,那么便要借助SQL Server Browser服务了。
SQL Server Browser启动后将侦听 UDP 1434 端口,接收客户端请求后,SQL Server Browser将读取注册表,识别计算机上的所有 SQL Server 实例,用请求实例的 TCP/IP 端口或命名管道做出响应,说白了,就是实例与端口的转换(类似DNS将域名转化为IP)。以后,客户端应用程序中的网络库将使用所需实例的端口或命名管道向服务器发送请求来完成连接。
提醒:当客户端通过防火墙连接时,不应使用动态分配的端口。否则,当动态分配的端口改变时,客户端的连接会出现问题。