数据库引擎服务启动选项

适用于:SQL Server

启动选项指定在启动期间所需的某些文件位置,并指定一些服务器范围的条件。 在大多数情况下,您无需指定启动选项,除非您正在对数据库引擎进行故障排除,或者遇到了异常问题,并被 SQL Server 客户支持指示使用启动选项。

警告

错误地使用启动选项可能会影响服务器性能并且可能阻止 SQL Server 启动。 使用 mssql 用户启动 Linux 上的 SQL Server 以防止将来出现启动问题。 例如,sudo -u mssql /opt/mssql/bin/sqlservr [STARTUP OPTIONS]

关于启动选项

安装 SQL Server 时,安装程序会在 Windows 注册表中写入一组默认启动选项。 可以使用这些启动选项指定备用的 master 数据库文件、master 数据库日志文件或错误日志文件。 如果数据库引擎找不到所需的文件,SQL Server 不会启动。

可以使用 SQL Server 配置管理器设置启动选项。 有关信息,请参阅 配置服务器启动选项

以下屏幕截图显示“SQL Server 属性”对话框中的“启动参数”选项卡,可在其中修改启动参数。

“SQL Server (MSSQLSERVER) 属性”对话框的屏幕截图,其中选择了“启动参数”选项卡。

启动选项列表

默认启动选项

选项 说明
-d <master_file_path> 数据库文件的完全限定路径 master (通常 C:\Program Files\Microsoft SQL Server\MSSQL.<n>\MSSQL\Data\master.mdf)。 如果没有提供此选项,则使用现有的注册表参数。
-e <error_log_path> 错误日志文件的完全限定路径(通常 C:\Program Files\Microsoft SQL Server\MSSQL.<n>\MSSQL\LOG\ERRORLOG)。 如果没有提供此选项,则使用现有的注册表参数。
-l <master_log_path 数据库日志文件的完全限定路径 master (通常 C:\Program Files\Microsoft SQL Server\MSSQL.<n>\MSSQL\Data\mastlog.ldf)。 如果没有提供此选项,则使用现有的注册表参数。

其他启动选项

选项 说明
-c 缩短从命令提示符启动 SQL Server 时的启动时间。 通常, SQL Server 数据库引擎 通过调用服务控制管理器作为服务启动。 由于从命令提示符启动时 SQL Server 数据库引擎不会作为服务启动,因此用于 -c 跳过此步骤。
-f 使用 最少的配置启动 SQL Server 实例。 在配置值的设置(例如过度提交内存)阻止服务器启动时,这会非常有用。 在最低配置模式下启动 SQL Server 会将 SQL Server 置于单用户模式。 有关详细信息,请参阅以下说明 -m
-k<decimal-number> 此启动参数限制每秒检查点 I/O 请求数,其中 <decimal-number> 表示检查点速度(以 MB/秒为单位)。 更改此值可能会影响备份的速度,或经历恢复过程,因此请谨慎行事。 也就是说,如果为参数指定的值太低,则可能会遇到更长的恢复时间,并且备份可能需要稍长的时间才能完成,因为备份启动的检查点过程也会延迟。

你可摒弃此参数,改用以下方法来帮助消除系统上遇到的 I/O 瓶颈:

- 提供适当的硬件来维持由 SQL Server 发布的 I/O 请求

- 进行足够的应用程序优化
-m 在单用户模式下启动 SQL Server 实例。 在单用户模式下启动 SQL Server 实例时,只有一个用户可以连接,并且 CHECKPOINT 进程不会启动。 CHECKPOINT 保证将已完成的事务定期从磁盘缓存写入数据库设备。 (通常,在遇到需要修复的系统数据库问题时使用此选项。)启用 sp_configure 允许更新选项。 默认情况下,allow updates 处于禁用状态。 在单用户模式下启动 SQL Server 使计算机本地 Administrators 组的任何成员能够作为 sysadmin 固定服务器角色的成员连接到 SQL Server 实例。 有关详细信息,请参阅在 系统管理员被锁定时连接到 SQL Server。有关单用户模式的详细信息,请参阅 SQL Server 的单用户模式
-mClient Application Name 将连接限制为指定的客户端应用程序。 例如,-mSQLCMD 将连接限制为单个连接,并且该连接必须标识为 sqlcmd 实用工具。 在单用户模式下启动 SQL Server 并且未知客户端应用程序仅使用可用连接时,请使用此选项。 使用 "Microsoft SQL Server Management Studio - Query" 与 SSMS 查询编辑器连接。 SSMS 查询编辑器选项不能使用 SQL Server 配置管理器进行配置,因为它包括该工具拒绝使用的短划线字符。

客户端应用程序名称区分大小写。 如果应用程序名称包含空格或特殊字符,则需要使用双引号引起来。

从命令行启动时的示例:

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\sqlservr -s MSSQLSERVER -m"Microsoft SQL Server Management Studio - Query"

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\sqlservr -s MSSQLSERVER -mSQLCMD

安全说明:请勿将此选项作为安全功能使用。 客户端应用程序提供客户端应用程序名称,并且提供假名称来作为连接字符串的一部分。
-n 不要使用 Windows 应用程序日志来记录 SQL Server 事件。 如果您使用 -n 启动 SQL Server 实例,我们建议您同时使用 -e 启动选项。 否则,将不会记录 SQL Server 事件。
-s 用于启动 SQL Server的命名实例。 如果没有参数 -s 集,则默认实例将尝试启动。 在启动sqlservr.exe之前,必须在命令提示符下切换到实例的相应BINN目录。 例如,如果 Instance1 使用 \mssql$Instance1 作为其二进制文件的目录,则用户必须位于 \mssql$Instance1\binn 目录中才能启动 sqlservr.exe -s instance1
-T <trace-number> 指示 SQL Server 的实例应以指定的跟踪标志(<trace-number>)有效启动。 跟踪标记用于以非标准行为启动服务器。 有关详细信息,请参阅 DBCC TRACEON - 跟踪标志

重要: 使用 -T 选项指定跟踪标志时,请使用大写 T 形式传递跟踪标志号,在选项和跟踪标志数之间 -T 没有空格。 SQL Server 也可接受小写 t,只是它用于设置仅 SQL Server 支持工程师才需要的其他内部跟踪标志。 (不读取“控制面板”启动窗口中指定的参数。)
-x 禁用下列监视功能:

- SQL Server 性能监视器计数器
- 保留 CPU 时间和高速缓存命中率统计信息
- 为DBCC SQLPERF命令收集信息
- 收集某些动态管理视图的信息
- 许多扩展事件事件点

警告: 使用 -x 启动选项时,可以诊断 SQL Server 的性能和功能问题的信息会大大减少。
-E 增加为文件组中的每个文件分配的区数。 此选项可能对运行索引或数据扫描的用户数量有限的数据仓库应用程序有所帮助。 不应在其他应用程序中使用此选项,因为它可能降低性能。 32 位版本的 SQL Server不支持此选项。

使用启动选项进行故障排除

某些启动选项(如单用户模式和最低配置模式)主要在故障排除过程中使用。 手动启动 sqlservr.exe 时,在命令行中使用 -m-f 选项启动用于故障排除的服务器最为容易。

注意

使用 net start 启动 SQL Server 时,启动选项使用的是左斜线 (/),而不是连字符 (-)。

在正常操作中使用启动选项

每次启动 SQL Server 时,可能需要使用一些启动选项。 完成这些选项(如用跟踪标志启动)的最简单方法是使用 SQL Server 配置管理器来配置启动参数。 此工具将启动选项保存为注册表项,因此 SQL Server 将始终用这些启动选项来启动。

兼容性支持

有关从以前版本中删除的选项,请参阅 sqlservr 应用程序