sqlservr 应用程序

sqlservr 应用程序可以在命令提示符下启动、停止、暂停和继续 Microsoft SQL Server 的实例。

语法

sqlservr [-sinstance_name] [-c] [-dmaster_path] [-f] 
     [-eerror_log_path] [-lmaster_log_path] [-m]
     [-n] [-Ttrace#] [-v] [-x] [-gnumber] [-h]

参数

  • -sinstance_name
    指定要连接到的 SQL Server 实例。如果未指定命名实例,sqlservr 将启动 SQL Server 的默认实例。

    重要说明重要提示

    启动 SQL Server 实例时,必须在该实例的相应目录中使用 sqlservr 应用程序。对于默认实例,从 \MSSQL\Binn 目录运行 sqlservr。对于命名实例,在 \MSSQL$instance_name\Binn 目录运行 sqlservr

  • -c
    指示独立于 Windows 服务控制管理器启动 SQL Server 实例。从命令提示符下启动 SQL Server 时可使用此选项,以缩短 SQL Server 的启动时间。

    注意注意

    使用此选项时,将无法通过使用 SQL Server 服务管理器或 net stop 命令停止 SQL Server。如果注销计算机,则 SQL Server 将停止。

  • -dmaster_path
    指出 master 数据库文件的完全限定路径。在 -d 和 master_path 之间没有空格。如果没有提供此选项,则使用现有的注册表参数。

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

  • -eerror_log_path
    指示错误日志文件的完全限定路径。如果不指定路径,则默认实例的默认位置是 <Drive>:\Program Files\Microsoft SQL Server\MSSQL\Log\Errorlog,命名实例的默认位置是 <Drive>:\Program Files\Microsoft SQL Server\MSSQL$instance_name\Log\Errorlog。在 -e 和 error_log_path 之间没有空格。

  • -lmaster_log_path
    指示 master 数据库事务日志文件的完全限定路径。在 -l 和 master_log_path 之间没有空格。

  • -m
    指示以单用户模式启动 SQL Server 实例。如果以单用户模式启动 SQL Server,则只有一个用户可以连接。确保将已完成事务定期从磁盘缓存写入数据库设备的 CHECKPOINT 机制将不启动。通常情况下,在遇到需要修复系统数据库这样的问题时才使用该选项。启用 sp_configure allow updates 选项。默认情况下,allow updates 被禁用。

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

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

    重要说明重要提示

    指定跟踪标志时,请使用 -T 来传递跟踪标志号。SQL Server 接受小写的 t (-t);但是 -t 通常用于设置 SQL Server 支持工程师所需的其他内部跟踪标志。

  • -v
    显示服务器的版本号。

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

  • -gmemory_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 启用 AWE 时为热添加内存元数据保留虚拟内存地址空间。需要为具有 32 位 AWE 的热添加内存设置该选项,但将占用大约 0.5GB 的虚拟地址空间,并会增加内存优化的难度。对于 64 位 SQL Server,不是必需项。

注释

多数情况下,sqlservr.exe 程序只用于故障排除或主要维护。在命令提示符下使用 sqlservr.exe 启动 SQL Server 时,SQL Server 不作为服务启动,因此无法使用 net 命令停止 SQL Server。用户可以连接到 SQL Server,但 SQL Server 工具将显示服务的状态,以便 SQL Server 配置管理器正确指示服务已停止。SQL Server Management Studio 可以与服务器连接,但它也可以指示服务已停止。