SQL Server 的默认实例和命名实例的文件位置
适用于 SQL Server - 仅限 Windows
本文介绍了已安装的 SQL Server 组件的文件位置。
概述
安装 SQL Server 将安装一个或多个单独的实例。 无论是默认实例还是命名实例都有自己的一组程序文件和数据文件,同时还有在计算机上的所有 SQL Server 实例之间共享的一组公共文件。
对于包含 SQL Server 、 数据库引擎和 Analysis Services的 Reporting Services实例,每个组件都有一套完整的数据文件和可执行文件,以及由所有组件共享的公共文件。
为了隔离每个组件的安装位置,将为给定 SQL Server实例中的每个组件都生成一个唯一的实例 ID。
重要
程序文件和数据文件无法安装在以下位置:可移动磁盘驱动器、使用压缩的文件系统、系统文件所在的目录,以及故障转移群集实例上的共享驱动器。
可能需要安装扫描软件(如防病毒应用程序和反间谍应用程序)以排除 SQL Server 文件夹和文件类型。 有关详细信息,请参阅以下支持文章:运行 SQL Server 的计算机上的防病毒软件。
在安装系统数据库(master、model、msdb
和 tempdb
)和数据库引擎用户数据库时可以选择服务器消息块 (SMB) 文件服务器作为存储。 这同时适用于 SQL Server 独立安装和 SQL Server 故障转移群集安装 (FCI)。 有关详细信息,请参阅 安装 SQL Server,并使用 SMB 文件共享作为存储选项。
请勿删除以下任何目录或其内容:Binn、Data、Ftdata、HTML 或 1033。 如有必要,可以删除其他目录;但是,如果不卸载并重新安装 SQL Server,则可能无法检索失去的功能或数据。 请勿删除或修改 HTML 目录中的任何 .htm 文件。 它们对于 SQL Server 工具的正常运行是必需的。
所有 SQL Server
单台计算机上所有实例使用的公共文件安装在以下文件夹中:<drive>:\Program Files\Microsoft SQL Server\nnn\。 <drive> 是安装组件的驱动器号。 通常默认使用 C 盘。nnn 标识版本。
下表描述了路径的版本。 {nn} 是在实例 ID 和注册表路径中使用的版本值。
版本 | *nnn* | {nn} |
---|---|---|
SQL Server 2022 (16.x) | 160 | 16 |
SQL Server 2019 (15.x) | 150 | 15 |
SQL Server 2017 (14.x) | 140 | 14 |
SQL Server 2016 (13.x) | 130 | 13 |
SQL Server 2014 (12.x) | 120 | 12 |
SQL Server 2012 (11.x) | 110 | 11 |
文件位置和注册表映射
SQL Server 安装过程中,为每个服务器组件生成一个实例 ID。 此 SQL Server 版本中的服务器组件分别是 数据库引擎、 Analysis Services和 Reporting Services。
默认实例 ID 使用以下格式构造:
对于 数据库引擎采用的是 MSSQL,后面依次跟有主版本号、下划线和次版本号(如果适用)、一个句点以及实例名。
对于 Analysis Services采用的是 MSAS,后面依次跟有主版本号、下划线和次版本号(如果适用)、一个句点以及实例名。
对于 Reporting Services采用的是 MSRS,后面依次跟有主版本号、下划线和次版本号(如果适用)、一个句点以及实例名。
此 SQL Server 版本中的默认实例 ID 的示例如下:
对于默认 SQL Server 实例,为 MSSQL{nn}.MSSQLSERVER。
对于 SQL Server Analysis Services 的默认实例,为 MSAS{nn}.MSSQLSERVER。
对于名为“MyInstance”的 SQL Server 命名实例,为 MSSQL{nn}.MyInstance。
包括 SQL Server 和 数据库引擎 的 Analysis Services命名实例(名为“MyInstance”并且按照默认目录安装)的目录结构如下所示:
C:\Program Files\Microsoft SQL Server\MSSQL{nn}.MyInstance\
C:\Program Files\Microsoft SQL Server\MSAS{nn}.MyInstance\
可以为实例 ID 指定任何值,但应避免使用特殊字符和保留关键字。
在 SQL Server 安装期间可指定一个非默认实例 ID。 如果用户选择更改默认安装目录,则不使用 \{Program Files}\Microsoft SQL Server,而使用 <自定义路径>\Microsoft SQL Server。 不支持以下划线 (_) 开头或者包含数字符号 (#) 或美元符号 ($) 的实例 ID。
注意
Integration Services 和客户端组件是不识别实例的,因此不为它们指定实例 ID。 默认状态下,将不识别实例的组件安装在单个目录中 <drive>:\Program Files\Microsoft SQL Server\nnn\ 中。 更改一个共享组件的安装路径还会更改其他共享组件的安装路径。 后续安装会将非实例识别组件安装到与原始安装相同的目录。
SQL Server Analysis Services 是在安装后支持实例重命名的唯一 SQL Server 组件。 如果重命名 Analysis Services 实例,实例 ID 不会发生变化。 在实例重命名完成后,目录和注册表项会继续使用在安装期间创建的实例 ID。
在 HKLM\Software\Microsoft\Microsoft SQL Server\<Instance_ID> 下为识别实例的组件创建注册表配置单元。 例如,
HKLM\Software\Microsoft\Microsoft SQL Server\MSSQL{nn}.MyInstance
HKLM\Software\Microsoft\Microsoft SQL Server\MSAS{nn}.MyInstance
HKLM\Software\Microsoft\Microsoft SQL Server\MSRS{nn}.MyInstance
注册表还维护实例 ID 到实例名的映射。 实例 ID 到实例名的映射按如下方式维护:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL] "<InstanceName>"="MSSQL{nn}"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\OLAP] "<InstanceName>"="MSAS{nn}"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\RS] "<InstanceName>"="MSRS{nn}"
指定文件路径
安装过程中,可以更改下列功能的安装路径:
只有具有用户可配置目标文件夹的功能,安装路径才会显示在安装程序中:
组件 | 默认路径 | 可配置或固定路径 |
---|---|---|
数据库引擎 服务器组件 | \Program Files\Microsoft SQL Server\MSSQL{nn}.<InstanceID>\ | 可配置性 |
数据库引擎 数据文件 | \Program Files\Microsoft SQL Server\MSSQL{nn}.<InstanceID>\ | 可配置性 |
Analysis Services 服务器 | \Program Files\Microsoft SQL Server\MSAS{nn}.<InstanceID>\ | 可配置性 |
Analysis Services 数据文件 | \Program Files\Microsoft SQL Server\MSAS{nn}.<InstanceID>\ | 可配置性 |
Reporting Services 报表服务器 | \Program Files\Microsoft SQL Server\MSRS{nn}.<InstanceID>\Reporting Services\ReportServer\Bin\ | 可配置性 |
Reporting Services 报表管理器 | \Program Files\Microsoft SQL Server\MSRS{nn}.<InstanceID>\Reporting Services\ReportManager\ | 固定路径 |
Integration Services | <安装目录>\nnn\DTS\ 1 | 可配置性 |
客户端组件(bcp.exe 和 sqlcmd.exe 除外) | <安装目录>\nnn\Tools\ 1 | 可配置性 |
客户端组件(bcp.exe 和 sqlcmd.exe) | <安装目录>\Client SDK\ODBC\nnn\Tools\Binn | 固定路径 |
复制和服务器端 COM 对象 | <drive>:\Program Files\Microsoft SQL Server\nnn\COM\ 2 | 固定路径 |
Integration Services 用于数据转换运行时引擎、数据转换管道引擎和 dtexec 命令提示实用工具的组件 DLL | <drive>:\Program Files\Microsoft SQL Server\nnn\DTS\Binn | 固定路径 |
为 Integration Services | <drive>:\Program Files\Microsoft SQL Server\nnn\DTS\Connections | 固定路径 |
Integration Services 支持的每种类型枚举器的 DLL | <drive>:\Program Files\Microsoft SQL Server\nnn\DTS\ForEachEnumerators | 固定路径 |
SQL Server 浏览器服务、WMI 提供程序 | <drive>:\Program Files\Microsoft SQL Server\nnn\Shared\ | 固定路径 |
所有 SQL Server | <drive>:\Program Files\Microsoft SQL Server\nnn\Shared\ | 固定路径 |
警告
确保通过限制权限对 \Program Files\Microsoft SQL Server\ 文件夹进行保护。
文件位置的默认驱动器为 systemdrive,通常为驱动器 C。子功能的安装路径由父功能的安装路径确定。
1Integration Services 和客户端组件共享单个安装路径。 更改一个组件的安装路径会同时更改其他组件的安装路径。 后续安装将组件安装到与原始安装相同的位置。
2 此目录由计算机上的所有 SQL Server 实例使用。 如果对计算机上的任何实例应用更新,对此文件夹中的文件所做的任何更改都会影响计算机上的所有实例。 向现有安装添加功能时,不能更改以前安装的功能的位置,也不能为新功能指定该位置。 必须将其他功能安装到安装程序已建立的目录,或卸载并重新安装产品。
注意
对于群集配置,必须选择在群集的每个节点上都可用的本地驱动器。
当在安装过程中为服务器组件或数据文件指定安装路径时,安装程序除了为程序和数据文件使用指定的位置外,还使用实例 ID。 安装程序不会将实例 ID 用于工具和其他共享文件。 安装程序也不会将任何实例 ID 用于 Analysis Services 程序和数据文件,尽管它会将实例 ID 用于 Analysis Services 存储库。
如果为 数据库引擎 功能设置了安装路径,则对于此次安装, SQL Server 安装程序会将该路径用作所有特定于实例的文件夹(包括 SQL 数据文件)的根目录。 在这种情况下,如果将根目录设置为“C:\Program Files\Microsoft SQL Server\MSSQL{nn}.<InstanceName>\MSSQL\”,则特定于实例的目录将添加到此路径的末尾。
在 SQL Server 安装向导(安装程序用户界面模式)中选择使用 USESYSDB 升级功能的客户会很容易将产品安装到递归文件夹结构中。 例如,<SQLProgramFiles>\MSSQL14\MSSQL\MSSQL10_50\MSSQL\Data\。 这时,为了使用 USESYSDB 功能,请为 SQL 数据文件功能而非 数据库引擎 功能设置安装路径。
注意
数据文件始终应位于名为 Data 的子目录中。 例如,当数据文件位于 C:\Program Files\Microsoft SQL Server\MSSQL{nn}.<InstanceName>\MSSQL\Data 下时,应指定 C:\Program Files\Microsoft SQL Server\MSSQL{nn}.<InstanceName>\ 作为升级期间系统数据库的数据目录的根路径。