使用 SQL Server 服务启动选项

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

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

默认启动选项 说明

-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)。

可以使用下列其他启动选项来临时覆盖默认启动选项并启动 SQL Server 实例。

其他启动选项 说明

-c

缩短从命令提示符启动 SQL Server 时的启动时间。 通常,SQL Server 数据库引擎通过调用服务控制管理器作为服务启动。 由于从命令提示符启动时,SQL Server 数据库引擎不作为服务启动,因此请使用 -c 跳过此步骤。

-f

以最小配置启动 SQL Server 实例。 在配置值的设置(如过度分配内存)防碍服务器启动时,这非常有用。

-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 参数的默认值:

  • "Failed Virtual Allocate Bytes: FAIL_VIRTUAL_RESERVE <size>"
  • "Failed Virtual Allocate Bytes: FAIL_VIRTUAL_COMMIT <size>"

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

使用小于默认值的值将增加缓冲池和线程栈中的可用内存量;而在不使用很多扩展存储过程、分布式查询或自动化对象的系统中,这种方法可改善需要大量内存的工作负荷的性能。

-h

为使用 32 位的 SQL Server 2005 启用 AWE 时的热添加内存元数据保留虚拟地址空间。 32 位 AWE 需要热添加内存,但这将占用大约 500 MB 的虚拟地址空间并且使内存优化更加困难。 对于 64 位 SQL Server,不是必需项。 热添加内存仅适用于 Enterprise Edition 和 Datacenter Edition。 它还需要从硬件供应商处获得特殊的硬件支持。

-m

在单用户模式下启动 SQL Server 实例。 在单用户模式下启动 SQL Server 实例时,只能连接一个用户,并且不启动 CHECKPOINT 进程。 CHECKPOINT 保证将已完成的事务定期从磁盘缓存写入数据库设备。 (通常,在遇到需要修复的系统数据库问题时使用此选项。) 启用 sp_configure allow updates 选项。 默认情况下,allow updates 被禁用。

-n

不使用 Windows 应用程序日志记录 SQL Server 事件。 如果使用 -n 启动 SQL Server 实例,则建议您同时使用 -e 启动选项。 否则,将不会记录 SQL Server 事件。

-s

用于启动 SQL Server 2005 的命名实例。 如果 -s 参数未设置,则将尝试启动默认实例。 必须在命令提示符下切换到实例相应的 BINN 目录,然后才能启动 sqlservr.exe。 例如,如果 Instance1 为其二进制文件使用 \mssql$Instance1,则用户必须位于 \mssql$Instance1\binn 目录中才能启动 sqlservr.exe -s instance1

-T trace#

指示 SQL Server 实例启动时,指定的跟踪标志 (trace#) 应同时生效。 跟踪标志用于以非标准行为启动服务器。 有关详细信息,请参阅跟踪标志 (Transact-SQL)

-x

不保留 CPU 时间和高速缓存命中率统计信息。 可获得最大性能。

ms190737.note(zh-cn,SQL.90).gif注意:
使用 -T 选项指定跟踪标记时,请使用大写“T”来传递跟踪标记号。 SQL Server 也可接受小写“t”,只是它用于设置仅 SQL Server 支持工程师才需要的其他内部跟踪标志。 (不读取“控制面板”启动窗口中指定的参数。)

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

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

ms190737.note(zh-cn,SQL.90).gif注意:
使用 net start 启动 SQL Server 时,启动选项使用正斜杠 (/) 而不是连字符 (-)。

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

最好在每次启动 SQL Server 时使用某些启动选项。 通过使用 SQL Server Management Studio 或 SQL Server 配置管理器配置启动参数,可以非常容易地实现这些选项(如 –g 或用跟踪标志启动)。 这些工具将启动选项保存为注册表项,因此 SQL Server 将始终用这些启动选项来启动。

请参阅

任务

如何启动 SQL Server 实例 (sqlservr.exe)
如何启动 SQL Server 实例 (SQL Server 配置管理器)
如何启动 SQL Server 实例(net 命令)

其他资源

在命令提示符下使用 sqlservr.exe 管理 SQL Server
CHECKPOINT (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助