数据库引擎服务启动选项

启动选项指定在启动期间所需的某些文件位置,并指定一些服务器范围的条件。 大多数用户不需要指定启动选项,除非您在排除 数据库引擎 故障或者具有不常见问题,并且 SQL Server 客户支持指示使用启动选项。

警告

错误地使用启动选项可能会影响服务器性能并且可能阻止 SQL Server 启动。

关于启动选项

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

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

启动选项列表

默认启动选项 说明
-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 说明。
-g memory_to_reserve 指定 SQL Server 在 SQL Server 进程内(但在 SQL Server 内存池外部)内存分配中保留的内存的整数数(MB)。 内存池外部的内存是 SQL Server 用于加载项的区域,例如扩展过程.dll文件、分布式查询引用的 OLE DB 提供程序以及 Transact-SQL 语句中引用的自动化对象。 默认值为 256 MB。

使用此选项可帮助优化内存分配,但仅限于物理内存超过操作系统设置的应用程序可用虚拟内存配置限制时。 使用此选项可能适用于大型内存配置,其中 SQL Server 的内存使用要求不典型,并且 SQL Server 进程的虚拟地址空间已完全使用。 使用此选项不正确可能会导致 SQL Server 实例无法启动或遇到运行时错误的情况。

除非在 SQL Server 错误日志中看到以下任何警告,否则请使用 -g 参数的默认值

-“失败的虚拟分配字节数:FAIL_VIRTUAL_RESERVE <大小>”

-“失败的虚拟分配字节数:FAIL_VIRTUAL_COMMIT <大小>”

这些消息可能表示 SQL Server 尝试释放 SQL Server 内存池的某些部分,以便查找项的空间,例如扩展存储过程.dll文件或自动化对象。 在这种情况下,可以考虑增加由 -g 开关保留的内存量。

使用小于默认值的值将增加 SQL Server 内存管理器所管理的内存池和线程栈中的可用内存量;而在不使用很多扩展存储过程、分布式查询或自动化对象的系统中,这种方法可改善需要大量内存的工作负荷的性能。
-m 在单用户模式下启动 SQL Server 实例。 在单用户模式下启动 SQL Server 实例时,只能连接一个用户,并且不启动 CHECKPOINT 进程。 CHECKPOINT 保证将已完成的事务定期从磁盘缓存写入数据库设备。 (通常,在遇到需要修复的系统数据库问题时使用此选项。)启用 sp_configure allow updates 选项。 默认情况下,allow updates 处于禁用状态。 在单用户模式下启动 SQL Server 可使计算机本地 Administrators 组的任何成员作为 sysadmin 固定服务器角色的成员连接到 SQL Server 实例。 有关详细信息,请参阅 在系统管理员被锁定时连接到 SQL Server。有关单用户模式的详细信息,请参阅 在单用户模式下启动 SQL Server
-m“客户端应用程序名称” 将 -m 选项与 SQLCMD 或 SQL Server Management Studio 配合使用时,将连接限制到指定的客户端应用程序。 例如,-m"sqlcmd" 将连接限制为单个连接,并且该连接必须将自身标识为 SQLCMD 客户端程序。 当您正在单用户模式下启动 SQL Server 并且未知的客户端应用程序正在占用这个唯一的可用连接时,使用此选项。 若要通过 Management Studio 中的查询编辑器进行连接,请使用 -m“Microsoft SQL Server Management Studio - Query”。

客户端应用程序名称区分大小写。

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

** 重要 ** 使用 -T 选项指定跟踪标志时,请使用大写的“T”传递跟踪标志号。 SQL Server 接受小写的“t”,但这会设置 SQL Server 仅支持工程师所需的其他内部跟踪标志。 (不读取“控制面板”启动窗口中指定的参数。)
-x 禁用下列监视功能:

SQL Server 性能监视器计数器

保留 CPU 时间和高速缓存命中率统计信息

收集 DBCC SQLPERF 命令的信息

收集某些动态管理视图的信息

许多扩展事件事件点



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

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

某些启动选项(如单用户模式和最低配置模式)主要在故障排除过程中使用。 使用“-m”或“-f”选项启动服务器进行故障排除的最简单方法是使用命令行,同时还能手动启动 sqlservr.exe 。

注意

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

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

最好在每次启动 SQL Server时使用某些启动选项。 这些选项(例如 -g 或从跟踪标志开始)可通过使用 SQL Server 配置管理器 配置启动参数来轻松完成。 这些工具将启动选项保存为注册表项,因此 SQL Server 将始终用这些启动选项来启动。

兼容性支持

SQL Server 2014 不支持 -h 参数。 此参数用于 SQL Server 早期版本的 32 位实例,以便在启用 AWE 时保留热添加内存元数据的虚拟内存地址空间。 有关详细信息,请参阅 SQL Server 2014 中不再使用的 SQL Server 功能

配置 scan for startup procs 服务器配置选项

启动、停止、暂停、继续、重新启动数据库引擎、SQL Server 代理或 SQL Server Browser 服务

另请参阅

CHECKPOINT (Transact-SQL)
sqlservr Application