当 SQL Server 服务无法启动时,通常由 系统资源冲突、文件或权限问题、数据库损坏 或 配置错误 引起。首要排查步骤是检查 Windows 事件查看器 中的应用程序日志,搜索来源为 MSSQLSERVER 的错误条目,这会直接给出根本原因。同时需要交叉比对 SQL Server 错误日志,该文件默认位于 C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log\ERRORLOG,记录着实例启动失败时的详细内部错误代码。

最常见的故障之一是 端口冲突 或 网络配置错误。如果启用了 SQL Server 的 VIA 协议 或 命名管道 未正确配置,会导致服务无法绑定。通过 SQL Server 配置管理器 检查 TCP/IP 协议 是否已启用,并确认 默认端口 1433 未被其他应用占用。另一个高频问题是 服务账户 的权限缺失或密码变更。当 SQL Server 配置为使用 域账户 或 托管服务账户 运行时,密码过期或对 数据目录、mdf/ldf 文件 失去读写权限会直接阻止启动。
若错误日志中出现 “拒绝访问” 或 “操作系统错误 5”,表明存在 文件系统权限问题。确保服务账户对 系统数据库文件(master.mdf, mastlog.ldf) 所在目录、TempDB 路径以及 错误日志目录 拥有完全控制权。当包含主数据库所在的磁盘损坏或空间耗尽时,也会导致无法启动,此时需要检查磁盘可用空间并运行 chkdsk 修复文件系统。
如果 master 数据库 本身损坏,SQL Server 将完全无法启动,错误日志会记录 “文件激活失败” 或 “物理文件不可用”。解决办法是从上一次有效备份恢复 master,或者使用 重建系统数据库 的灾难恢复规程,这对于严格的生产环境是最后的手段。此外,扩展存储过程 或第三方安全模块(如 EDR/HIPS 软件)注入失败也会导致启动挂起,此时可尝试以 最小配置模式(-f) 或 单用户模式(-m) 启动服务,通过命令行 sqlservr.exe -m 绕过有问题的组件并修复错误。
对于群集环境,启动失败通常涉及 仲裁磁盘 或 群集服务 依赖的健康状态,需检查 故障转移群集管理器 中的角色错误以及对应的 msdtc 协调状态。在任何修复操作前,务必先通过 错误日志 定位具体错误代码,结合官方文档精准排障,避免盲目操作导致数据丢失。

查看详情

查看详情