在 SQL Server 中管理服务(启动、停止、重启、配置启动类型、更改账户等)主要有以下几种方法,适用于不同场景:
📌 推荐方法:使用 SQL Server 配置管理器 (SQL Server Configuration Manager)
-
打开工具:
- Windows 搜索:按
Win + S
,输入SQL Server Configuration Manager
或SQL Server 配置管理器
,选择对应版本(如SQL Server 2022 Configuration Manager
)。 - 路径:
C:\Windows\SysWOW64\SQLServerManager<版本号>.msc
(例如SQLServerManager16.msc
for SQL Server 2022)。
- Windows 搜索:按
-
找到服务列表:
- 在左侧窗格展开
SQL Server 服务
。 - 右侧窗格会列出当前计算机上安装的所有 SQL Server 实例的服务。
- 在左侧窗格展开
-
管理服务:
- 启动/停止/重启/暂停/继续服务:
- 右键单击服务名称(如
SQL Server (MSSQLSERVER)
或SQL Server (实例名)
)。 - 选择
启动
、停止
、重新启动
、暂停
、继续
。
- 右键单击服务名称(如
- 查看服务状态: 状态列会显示
Running
(正在运行)、Stopped
(已停止)、Paused
(已暂停)。 - 更改启动模式:
- 右键单击服务 ->
属性
。 - 切换到
服务
选项卡。 - 在
启动模式
下拉框中选择:- 自动:Windows 启动时自动启动(生产环境推荐)。
- 手动:需要用户或脚本手动启动。
- 已禁用:服务完全禁用,无法启动(谨慎使用)。
- 点击
应用
或确定
。
- 右键单击服务 ->
- 更改服务账户:
- 右键单击服务 ->
属性
->登录
选项卡。 - 选择
登录身份
:- 内置账户:通常选择
NT AUTHORITY\NETWORK SERVICE
或NT AUTHORITY\SYSTEM
(本地系统)。这是最常见且相对安全的选项。 - 本账户:指定特定的域账户或本地账户。仅当服务需要访问域资源(如网络共享)时才需要更改为此选项,且务必确保该账户具有必要权限。
- 内置账户:通常选择
- 输入密码(如果选择“本账户”): 在
密码
和确认密码
框中输入。 - 点击
应用
。 - 重要提示: 在此处更改账户会自动授予该账户 SQL Server 文件和数据目录的必要权限,这是最安全可靠的方式更改服务账户。
- 右键单击服务 ->
- 查看高级属性: 在
高级
选项卡可以查看实例 ID、启动参数等(一般无需修改)。
- 启动/停止/重启/暂停/继续服务:
🧰 其他常用方法
-
Windows 服务控制台 (services.msc)
- 按
Win + R
,输入services.msc
,回车。 - 在列表中找到以
SQL Server (实例名)
开头的服务(如SQL Server (MSSQLSERVER)
)。 - 右键单击服务进行管理(启动、停止、重启、暂停、继续、配置启动类型)。
- 优点: 通用 Windows 界面,熟悉。
- 缺点:
- 服务列表较长时,SQL Server 特定服务(如 SQL Server Agent, SSIS, SSAS, SSRS)混杂其中,查找稍慢。
- 更改服务账户不如配置管理器安全可靠(不会自动设置文件权限,可能导致启动失败)。
- 按
-
命令提示符 (cmd.exe) 或 PowerShell
- 启动服务:
net start "服务名"
(例如net start "SQL Server (MSSQLSERVER)"
)sc start "服务名"
- PowerShell:
Start-Service -Name "服务名"
- 停止服务:
net stop "服务名"
sc stop "服务名"
- PowerShell:
Stop-Service -Name "服务名" -Force
(-Force
强制停止)
- 重启服务:
net stop "服务名" & net start "服务名"
- PowerShell:
Restart-Service -Name "服务名" -Force
- 查看服务状态:
sc query "服务名"
net start
(列出所有正在运行的服务)tasklist /svc /fi "imagename eq sqlservr.exe"
(查看 sqlservr.exe 进程关联的服务名)- PowerShell:
Get-Service -Name "服务名"
或Get-Service -DisplayName "SQL Server (*"
- 设置启动类型:
sc config "服务名" start= auto
(自动)sc config "服务名" start= demand
(手动)sc config "服务名" start= disabled
(禁用)
- 更改服务账户 (需管理员权限):
sc config "服务名" obj= "domain\username" password= "password"
- ⚠️ 警告: 此命令会将密码明文记录在命令历史中,存在安全隐患。更推荐在配置管理器中修改。
- 优点: 适合脚本化、自动化管理、远程管理。
- 缺点: 需要记住命令和服务的确切名称。
- 启动服务:
-
SQL Server Management Studio (SSMS)
- 启动/停止 SQL Server 服务 (仅限于当前连接的服务):
- 连接到目标 SQL Server 实例。
- 右键单击服务器根节点 ->
启动/停止/暂停/重新启动
。 - 主要用于连接后临时启停数据库引擎本身 (
sqlservr.exe
)。
- 管理 SQL Server Agent 作业:
- 连接到实例后,在
SQL Server 代理
节点下右键 ->启动
/停止
。
- 连接到实例后,在
- 缺点:
- 只能管理已连接实例的数据库引擎和代理服务(且需有权限)。
- 无法管理其他服务(SSIS, SSAS, SSRS)。
- 无法更改启动类型、服务账户等核心配置。
- 启动/停止 SQL Server 服务 (仅限于当前连接的服务):
📌 关键服务说明
- SQL Server (实例名): 数据库引擎核心服务。必须运行才能访问数据库。
- SQL Server Agent (实例名): 负责自动化任务(作业、警报、操作员)。生产环境通常设为自动启动。
- SQL Server Browser: 帮助客户端找到命名实例的端口号。单实例或固定端口连接时可禁用。
- SQL Server Reporting Services (实例名)/SSRS: 报表服务。
- SQL Server Analysis Services (实例名)/SSAS: 分析服务。
- SQL Server Integration Services <版本号>/SSIS: 集成服务引擎。
💡 最佳实践与注意事项
- 首选 SQL Server 配置管理器: 这是管理 SQL Server 服务的官方且最安全的工具,尤其对于更改服务账户和文件权限。
- 谨慎更改服务账户: 除非必要(如访问域资源),否则优先使用内置账户 (
NETWORK SERVICE
或LOCAL SYSTEM
)。更改账户后务必确认服务能正常启动。 - 理解启动类型: 生产核心服务(数据库引擎、Agent)设为
自动
。辅助服务(如仅偶尔使用的 SSIS)可设为手动
。禁用
用于彻底阻止服务运行。 - 停止服务前: 确保没有用户或关键进程连接。
- 重启服务: 是应用某些配置更改(如内存设置、跟踪标志)的必要步骤。
- 权限: 管理服务通常需要本地管理员权限。
- 实例名: 默认实例名为
MSSQLSERVER
(在服务列表中显示为SQL Server (MSSQLSERVER)
)。命名实例显示为SQL Server (YourInstanceName)
。 - 依赖关系: SQL Server Agent 依赖于 SQL Server Database Engine 服务。停止引擎服务时,Agent 也会停止。
根据您的具体需求(日常维护、脚本自动化、配置账户等),选择最适合的方法即可。对于大多数常规操作,SQL Server 配置管理器 是最佳起点。