您的位置:首页 > 数据库

SQL Server 2012笔记分享-4:理解SQL server实例 推荐

2014-06-08 15:21 405 查看
每个单独的SQL server实例都有一个windows进程:sqlservr.exe,一个windows下能安装多个实例,多个实例会有多个sqlservr.exe进程。
一个SQL实例在后台对应一个服务,如果多个应用程序放在一个实例里,如果某个应用开发的程序有问题,比如死循环,会导致服务停止,从而导致所有数据库无法工作。可以采用多实例分开方式。
一个服务器上可以装多个实例,标准版(16个)和企业版(50个)支持的实例数量不同。
SQL server实例的类型
(一)默认实例和命名实例
1、服务中服务名称的区别
默认实例:MSSQLSERVER;
命名实例:实列名为:SQL01,在服务中的名称是:MSSQL$SQL01。如果你有多个实例的时候会在服务中出现多个服务名称.
2、连接到SSMS时候的区别
默认实例可以使用点号、“(local)”、“计算机名称”直接连接



命名实例使用计算机名\实例名连接。使用的名称是:computername\SQL01
3、SQL Server 2005 的默认实例和命名实例的文件位置
无论是默认的还是命名的实例,都有自己的一套程序文件和数据文件,以及一套在计算机上的所有实例之间共享的公共文件。
对于包含数据库引擎、Analysis Services 和 Reporting Services 的 SQL Server 实例,每个组件都有一套完整的数据文件和可执行文件,以及由所有组件共享的公共文件。
为了隔离每个组件的安装位置,在给定的 SQL Server 实例中为每个组件都生成了唯一的实例 ID。这使单个组件可以升级到将来的 SQL Server 版本,而与其他 SQL Server 组件无关。
请不要***下列任何目录或其中的内容:Binn、Data、Ftdata、HTML 或 1033。如有必要,可以***其他目录;但是,如果不卸载并重新安装 SQL Server 2005,则可能无法检索失去的功能或数据。
不要***或修改 HTML 目录中的任何 .htm 文件。它们对于 SQL Server 工具的正常运行是必需的。
单台计算机上的所有实例使用的公共文件安装在文件夹 systemdrive:\Program Files\Microsoft SQL Server\90 中,其中 systemdrive 是安装组件的驱动器号。通常为驱动器 C。
参考:http://technet.microsoft.com/zh-cn/library/ms143547(SQL.90).aspx
4、实例ID
SQL Server 安装过程中,为每个服务器组件生成一个实例 ID。此 SQL Server 版本中的服务器组件是数据库引擎、Analysis Services 和 Reporting Services。实例 ID 的格式为 MSSQL.n,其中 n 是安装组件的序号。实例 ID 用在文件目录和注册表根目录中。
第一个生成的实例 ID 为 MSSQL.1,其他实例的 ID 号依次递增,如 MSSQL.2,MSSQL.3 等。如果由于卸载而使 ID 序列中断,则将生成 ID 号来填充中断。最新安装的实例可能并不总是有最高的实例 ID 号。
5、SQL express
在 SQL Server Express 中,默认情况下始终使用命名实例。您可以在安装 SQL Server Express 时指定实例名,否则,将使用默认命名实例 SQLExpress。如果使用默认命名实例,则可以将该实例引用为 computername\SQLExpress。
如果安装有默认实例的服务器中未安装其他版本的 SQL Server,则可以将 SQL Server Express 作为默认 SQL Server 实例进行安装。为此,请使用实例名 MSSQLSERVER 将 SQL Server Express 安装在命名实例中。这样可强制安装程序将 SQL Server Express 作为默认的未命名实例进行安装。
下图是一个正在安装默认实例的例子。



(二)本机实例和群集实例
笼统来说,如果SQL server没有进行故障转移群集部署,那SQL server的实例就是本机实例。
为了更好地理解群集实例,可以参考博客文章:http://543925535.blog.51cto.com/639838/1179319

2014.6.26日补充

======================================================================
群集实例的每个节点都提供相同的服务。而单机实例指一台机器上面安装的SQL实例,不管单台机器安装了多少个SQL实例,每一个单独的实例都叫单机实例。
一个实例是一个网络标识,对外提供服务,里面可以有多个数据库。
SQL实例和Oracle的实例不太一样,Oracle的实例类似于SQL的数据库。
2014.6.27日补充
======================================================================
安装多实例的时候,每个实例可以侦听独立的SQL TCP/IP端口;默认是1433端口,但是可以修改的;1433是国际上专门预留给SQL SERVER,Oracle是1521,这个只针对默认实例是这样的;如果继续安装命名实例,默认使用动态TCP端口1024-65535之间,需要的话也可以设置静态的TCP端口,方便防火墙开放;设置静态端口要防止本机上的端口冲突;使用SQL server browser服务来侦听尝试连接SQL server命名实例的网络要求(UDP 1434),提供指定的命名实例侦听的TCP端口号,如果有缓存以后就不需要了,如果只安装了默认实例,则该服务安装后是禁用的,因为SQL不需要这个服务,如果是命令实例安装,则browser服务会设置为自动启动安装;所有实例只有一个browser服务;不管一台服务器上安装了多少个SQL实例,始终都只会有一个browser服务。
=======================================================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息