SQL Server 默认实例和命名实例的文件位置

适用于: 是SQL Server(所有支持的版本) - 仅限 Windows 是Azure SQL 托管实例

安装 SQL Server 将安装一个或多个单独的实例。 无论是默认实例还是命名实例都有自己的一组程序文件和数据文件,同时还有在计算机上的所有 SQL Server 实例之间共享的一组公共文件。

对于包含 SQL Server 、 数据库引擎和 Analysis Services的 Reporting Services实例,每个组件都有一套完整的数据文件和可执行文件,以及由所有组件共享的公共文件。

为了隔离每个组件的安装位置,将为给定 SQL Server实例中的每个组件都生成一个唯一的实例 ID。

重要

程序文件和数据文件无法安装在以下位置:可移动磁盘驱动器、使用压缩的文件系统、系统文件所在的目录,以及故障转移群集实例上的共享驱动器。

可能需要安装扫描软件(如防病毒应用程序和反间谍应用程序)以排除 SQL Server 文件夹和文件类型。 有关详细信息,请参阅以下支持文章:运行 SQL Server 的计算机上的防病毒软件

在安装系统数据库(master、model、MSDB 和 tempdb)和 数据库引擎 用户数据库时可以选择 Server Message Block (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 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}\MicrosoftSQL Server,而使用 <custom path>\MicrosoftSQL 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\MicrosoftSQL Server\<Instance_ID> 下为识别实例的组件创建注册表配置单元。 例如,

  • HKLM\Software\Microsoft\MicrosoftSQL Server\MSSQL{nn}.MyInstance

  • HKLM\Software\Microsoft\MicrosoftSQL Server\MSAS{nn}.MyInstance

  • HKLM\Software\Microsoft\MicrosoftSQL Server\MSRS{nn}.MyInstance

注册表还维护实例 ID 到实例名的映射。 实例 ID 到实例名的映射按如下方式维护:

  • [HKEY_LOCAL_MACHINE\Software\Microsoft\MicrosoftSQL Server\Instance Names\SQL] "<InstanceName>"="MSSQL{nn}"

  • [HKEY_LOCAL_MACHINE\Software\Microsoft\MicrosoftSQL Server\Instance Names\OLAP] "<InstanceName>"="MSAS{nn}"

  • [HKEY_LOCAL_MACHINE\Software\Microsoft\MicrosoftSQL Server\Instance Names\RS] "<InstanceName>"="MSRS{nn}"

指定文件路径

安装过程中,可以更改下列功能的安装路径:

只有具有用户可配置目标文件夹的功能,安装路径才会显示在安装程序中:

组件 默认路径 可配置或固定路径
数据库引擎 服务器组件 \Program Files\MicrosoftSQL Server\MSSQL{nn}.<InstanceID>\ 可配置性
数据库引擎 数据文件 \Program Files\MicrosoftSQL Server\MSSQL{nn}.<InstanceID>\ 可配置性
Analysis Services 服务器 \Program Files\MicrosoftSQL Server\MSAS{nn}.<InstanceID>\ 可配置性
Analysis Services 数据文件 \Program Files\MicrosoftSQL Server\MSAS{nn}.<InstanceID>\ 可配置性
Reporting Services 报表服务器 \Program Files\MicrosoftSQL Server\MSRS{nn}.<InstanceID>\Reporting Services\ReportServer\Bin\ 可配置性
Reporting Services 报表管理器 \Program Files\MicrosoftSQL Server\MSRS{nn}.<InstanceID>\Reporting Services\ReportManager\ 固定路径
Integration Services <Install Directory>\nnn\DTS\ 1 可配置性
客户端组件(bcp.exe 和 sqlcmd.exe 除外) <Install Directory>\nnn\Tools\ 1 可配置性
客户端组件(bcp.exe 和 sqlcmd.exe) <Install Directory>\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\MicrosoftSQL Server\ 文件夹进行保护。

注意,文件位置的默认驱动器为 systemdrive,通常为驱动器 C。子功能的安装路径由父功能的安装路径确定。

1Integration Services 和客户端组件共享单个安装路径。 更改一个组件的安装路径会同时更改其他组件的安装路径。 后续安装将组件安装到与原始安装相同的位置。

2 此目录由计算机上的所有 SQL Server 实例使用。 如果对计算机上的任何实例应用更新,对此文件夹中的文件所做的任何更改都会影响计算机上的所有实例。 向现有安装添加功能时,不能更改以前安装的功能的位置,也不能为新功能指定该位置。 必须将其他功能安装到安装程序已建立的目录,或卸载并重新安装产品。

备注

对于群集配置,必须选择在群集的每个节点上都可用的本地驱动器。

当在安装过程中为服务器组件或数据文件指定安装路径时,安装程序除了为程序和数据文件使用指定的位置外,还使用实例 ID。 安装程序不会将实例 ID 用于工具和其他共享文件。 安装程序也不会将任何实例 ID 用于 Analysis Services 程序和数据文件,尽管它会将实例 ID 用于 Analysis Services 存储库。

如果为 数据库引擎 功能设置了安装路径,则对于此次安装, SQL Server 安装程序会将该路径用作所有特定于实例的文件夹(包括 SQL 数据文件)的根目录。 在这种情况下,如果将根目录设置为“C:\Program Files\MicrosoftSQL Server\MSSQL{nn}.<InstanceName>\MSSQL\”,则特定于实例的目录将添加到此路径的末尾。

在 SQL Server 安装向导(安装程序用户界面模式)中选择使用 USESYSDB 升级功能的客户会很容易将产品安装到递归文件夹结构中。 例如,<SQLProgramFiles>\MSSQL14\MSSQL\MSSQL10_50\MSSQL\Data\。 这时,为了使用 USESYSDB 功能,请为 SQL 数据文件功能而非 数据库引擎 功能设置安装路径。

备注

数据文件始终应位于名为 Data 的子目录中。 例如,当数据文件位于 C:\Program Files\MicrosoftSQL Server\MSSQL{nn}.<InstanceName>\MSSQL\Data 下时,则指定 C:\Program Files\MicrosoftSQL Server\MSSQL{nn}.<InstanceName>\ 作为升级期间系统数据库的数据目录的根路径。

另请参阅

数据库引擎配置 - 数据目录
Analysis Services 配置 - 数据目录