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

本主题说明如何使用 SQL Server 配置管理器、SQL Server Management Studio、命令提示符下的 net 命令、Transact-SQL 或 PowerShell 启动、停止、暂停、继续或重新启动 SQL Server 数据库引擎、SQL Server 代理或 SQL Server Browser 服务。

  • 开始之前:

    • 这些服务是什么?

    • 其他信息

    • 安全性

  • 相关说明:

    • SQL Server 配置管理器

    • SQL Server Management Studio

    • 命令提示符窗口中的 net 命令

    • Transact-SQL

    • PowerShell

开始之前

什么是 SQL Server 数据库引擎服务、SQL Server 代理服务和 SQL Server Browser 服务?

SQL Server 组件是作为 Windows 服务运行的可执行程序。 作为 Windows 服务运行的程序可以继续运行,而不在计算机屏幕上显示任何活动。

  • 数据库引擎 服务
    作为 SQL Server 数据库引擎的可执行进程。 数据库引擎可以是默认实例(每台计算机只有一个),也可以是多个数据库引擎命名实例中的一个。 使用 SQL Server 配置管理器确定在计算机上安装哪些数据库引擎实例。 默认实例(如果安装)作为 SQL Server (MSSQLSERVER) 列出。 命名实例(如果安装)作为 SQL Server (<instance_name>) 列出。 默认情况下,SQL Server Express 安装为 SQL Server (SQLEXPRESS)

  • SQL Server 代理服务
    一种 Windows 服务,可执行计划的管理任务(称为作业和警报)。 有关详细信息,请参阅SQL Server 代理。 并非所有版本的 SQL Server 都提供 SQL Server 代理。 有关 SQL Server 各版本支持的功能列表,请参阅 SQL Server 2012 各个版本支持的功能 (https://go.microsoft.com/fwlink/?linkid=232473)。

  • SQL Server Browser 服务
    一种 Windows 服务,可侦听对 SQL Server 资源的传入请求并为客户端提供有关计算机中安装的 SQL Server 实例的信息。 SQL Server Browser 服务的单个实例用于计算机上安装的所有 SQL Server 实例。

其他信息

  • 暂停数据库引擎服务将阻止新用户连接到数据库引擎,但是已连接的用户可以继续工作到连接断开时为止。 当希望在您停止该服务前等待用户完成工作时,请使用“暂停”。 这使他们能够完成正在进行的事务。 “继续”允许数据库引擎再次接受新连接。 SQL Server 代理服务不能暂停或继续。

  • SQL Server 配置管理器和 SQL Server Management Studio 使用以下图标显示服务的当前状态。

    SQL Server 配置管理器

    • 服务名称旁边的图标上的绿色箭头表示服务已启动。

    • 服务名称旁边的图标上的红色正方形表示服务已停止。

    • 服务名称旁边的图标上的两条蓝色竖线表示服务已暂停。

    • 重新启动数据库引擎时,将用红色正方形表示服务已停止,然后用绿色箭头表示服务已成功启动。

    SQL Server Management Studio

    • 服务名称旁边的绿色圆圈图标上的白色箭头表示服务已启动。

    • 服务名称旁边的红色圆圈图标上的白色正方形表示服务已停止。

    • 服务名称旁边的蓝色圆圈图标上的两条白色竖线表示服务已暂停。

  • 使用 SQL Server 配置管理器或 SQL Server Management Studio 时,只提供可能的选项。 例如,如果服务已启动,**“启动”**将不可用。

  • 在群集上运行时,SQL Server 数据库引擎服务最好使用群集管理器来管理。

安全性

权限

默认情况下,只有本地管理员组的成员能够启动、停止、暂停、继续或重新启动服务。 若要向管理员之外的用户授予管理服务的权限,请参阅如何授予用户管理 Windows Server 2003 中的服务的权限。 (此过程在其他 Windows 版本上是类似的。)

使用 Transact-SQL SHUTDOWN 命令停止数据库引擎需要 sysadminserveradmin 固定服务器角色的成员资格并且不可转让。

[Top]

使用 SQL Server 配置管理器

启动、停止、暂停、继续或重新启动 SQL Server 数据库引擎实例

  1. 在**“开始”菜单中,依次指向“所有程序”、 Microsoft SQL Server 2012 、“配置工具”,然后单击“SQL Server 配置管理器”**。

  2. 如果此时出现**“用户帐户控制”对话框,请单击“是”**。

  3. 在 SQL Server 配置管理器的左窗格中,单击**“SQL Server 服务”**。

  4. 在结果窗格中,右键单击 SQL Server (MSSQLServer) 或某个命名实例,然后单击**“启动”“停止”“暂停”“继续”“重新启动”**。

  5. 单击**“确定”**关闭 SQL Server 配置管理器。

注意注意

要使用启动选项启动 SQL Server 数据库引擎 实例,请参阅配置服务器启动选项(SQL Server 配置管理器)

启动、停止、暂停、继续或重新启动 SQL Server Browser 或 SQL Server 代理实例

  1. 在**“开始”菜单中,依次指向“所有程序”、 Microsoft SQL Server 2012 、“配置工具”,然后单击“SQL Server 配置管理器”**。

  2. 如果此时出现**“用户帐户控制”对话框,请单击“是”**。

  3. 在 SQL Server 配置管理器的左窗格中,单击**“SQL Server 服务”**。

  4. 在结果窗格中,右键单击 SQL Server Browser“SQL Server 代理(MSSQLServer)”“SQL Server 代理(<instance_name>)”(对于命名实例),然后单击**“启动”“停止”“暂停”“继续”“重新启动”**。

  5. 单击**“确定”**关闭 SQL Server 配置管理器。

注意注意

SQL Server 代理不能暂停。

[Top]

使用 SQL Server Management Studio

启动、停止、暂停、继续或重新启动 SQL Server 数据库引擎实例

  1. 在对象资源管理器中,连接到数据库引擎实例,右键单击要启动的数据库引擎实例,然后单击**“启动”“停止”“暂停”“继续”“重新启动”**。

    或者,在“已注册的服务器”中,右键单击要启动的数据库引擎实例,指向**“服务控制”,然后单击“启动”“停止”“暂停”“继续”“重新启动”**。

  2. 如果此时出现**“用户帐户控制”对话框,请单击“是”**。

  3. 系统提示是否要执行该操作时,请单击**“是”**。

启动、停止或重新启动 SQL Server 代理实例

  1. 在对象资源管理器中,连接到数据库引擎实例,右键单击**“SQL Server 代理”,然后单击“启动”“停止”“重新启动”**。

  2. 如果此时出现**“用户帐户控制”对话框,请单击“是”**。

  3. 系统提示是否要执行该操作时,请单击**“是”**。

[Top]

在命令提示符窗口中使用 net 命令

可以使用 Microsoft Windows net 命令启动、停止或暂停 Microsoft SQL Server 服务。

启动数据库引擎的默认实例

  • 在命令提示符下,输入下列命令之一:

    net start "SQL Server (MSSQLSERVER)"

    - 或者 -

    net start MSSQLSERVER

启动数据库引擎的命名实例

  • 在命令提示符下,输入下列命令之一。 请用要管理的实例的名称替换 <instancename>。

    net start "SQL Server (instancename)"

    - 或者 -

    net start MSSQL$instancename

使用启动选项启动数据库引擎

  • 将启动选项添加到 net start "SQL Server (MSSQLSERVER)" 语句末尾,用空格分隔。 使用 net start 启动时,启动选项使用正斜杠 (/) 而不是连字符 (-)。

    net start "SQL Server (MSSQLSERVER)" /f /m

    - 或者 -

    net start MSSQLSERVER /f /m

    注意注意

    有关启动选项的详细信息,请参阅数据库引擎服务启动选项

在SQL Server默认实例上启动 SQL Server 代理

  • 在命令提示符下,输入下列命令之一:

    net start "SQL Server Agent (MSSQLSERVER)"

    - 或者 -

    net start SQLSERVERAGENT

在SQL Server命名实例上启动 SQL Server 代理

  • 在命令提示符下,输入下列命令之一。 请用要管理的实例的名称替换 instancename。

    net start "SQL Server Agent(instancename)"

    - 或者 -

    **net start SQLAgent$**instancename

有关如何在详细模式中运行 SQL Server 代理以执行故障排除的信息,请参阅 sqlagent90 应用程序

启动 SQL Server Browser

  • 在命令提示符下,输入下列命令之一:

    net start "SQL Server Browser"

    - 或者 -

    net start SQLBrowser

在命令提示符窗口中暂停或停止服务

  • 要暂停或停止服务,请通过以下方式修改命令:

    • 要暂停服务,请用 net pause 替换 net start

    • 要停止服务,请用 net stop 替换 net start

    [Top]

使用 Transact-SQL

可以使用 SHUTDOWN 语句停止数据库引擎。

使用 Transact-SQL 停止数据库引擎

  • 要等待当前运行的 Transact-SQL 语句和存储过程完成后停止数据库引擎,请执行以下语句:

    SHUTDOWN; 
    
  • 要立即停止数据库引擎,请执行以下语句:

    SHUTDOWN WITH NOWAIT; 
    

有关 SHUTDOWN 语句的详细信息,请参阅 SHUTDOWN (Transact-SQL)

[Top]

使用 PowerShell

启动和停止数据库引擎服务

  1. 在命令提示符窗口中,通过执行以下命令启动 SQL Server PowerShell:

    sqlps
    
  2. 在 SQL Server PowerShell 命令提示符下,执行以下命令。 使用您的计算机名称替换 computername。

    # Get a reference to the ManagedComputer class.
    CD SQLSERVER:\SQL\computername
    $Wmi = (get-item .).ManagedComputer
    
  3. 标识要停止或启动的服务。 选取下列行之一。 使用命名实例的名称替换 instancename。

    • 获取对数据库引擎默认实例的引用。

      $DfltInstance = $Wmi.Services['MSSQLSERVER']
      
    • 获取对数据库引擎命名实例的引用。

      $DfltInstance = $Wmi.Services['MSSQL$instancename']
      
    • 获取对数据库引擎默认实例上 SQL Server 代理服务的引用。

      $DfltInstance = $Wmi.Services['SQLSERVERAGENT']
      
    • 获取对数据库引擎命名实例上 SQL Server 代理服务的引用。

      $DfltInstance = $Wmi.Services['SQLAGENT$instancename']
      
    • 获取对 SQL Server Browser 服务的引用。

      $DfltInstance = $Wmi.Services['SQLBROWSER']
      
  4. 完成示例以启动然后停止所选服务。

    # Display the state of the service.
    $DfltInstance
    # Start the service.
    $DfltInstance.Start();
    # Wait until the service has time to start.
    # Refresh the cache.
    $DfltInstance.Refresh(); 
    # Display the state of the service.
    $DfltInstance
    # Stop the service.
    $DfltInstance.Stop();
    # Wait until the service has time to stop.
    # Refresh the cache.
    $DfltInstance.Refresh(); 
    # Display the state of the service.
    $DfltInstance
    

[Top]

请参阅

概念

以最小配置启动 SQL Server

SQL Server 2012 各个版本支持的功能