启动 SQL Server 服务时出现特定于服务的错误 17113

适用范围:SQL Server

现象

在 Microsoft SQL Server 中 master ,数据库记录所有系统级信息。 该 master 数据库还会记录所有其他数据库的存在、这些数据库文件的位置以及 SQL Server 的初始化信息。 因此,如果 master 数据库不可用,SQL Server 将无法启动。

尝试在此方案中启动 SQL Server 时,SQL Server 服务不会启动,并且会收到以下错误消息之一,具体取决于尝试启动该服务的方式:

  • 通过使用 服务 小程序:

    Windows 无法在本地计算机上启动 SQL Server (MSSQLSERVER)。 有关详细信息,请查看系统事件日志。 如果这是非Microsoft服务,请联系服务提供商,并参考特定于服务的错误代码 17113。

  • 使用命令提示符:

    C:\\>NET START MSSQLSERVER  
    The SQL Server (MSSQLSERVER) service is starting.  
    The SQL Server (MSSQLSERVER) service could not be started.  
    A service specific error occurred: 17113.  
    More help is available by typing NET HELPMSG 3547.
    

解决方法

  1. 检查 SQL Server 错误日志 ,并验证原因是否是数据库的不可访问性 master 。 例如,你可能会看到如下所示的日志条目:

    <Datetime> Server      Error: 17113, Severity: 16, State: 1.  
    <Datetime> Server      Error 2(The system cannot find the file specified.) occurred while opening file
                           'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\master.mdf' to obtain configuration information at startup.
                           An invalid startup option might have caused the error. Verify your startup options, and correct or remove them if necessary.
    
  2. 验证 master.mdf 文件的位置。 如果路径不正确,请使用SQL Server 配置管理器或注册表编辑器修复路径。

    1. 通过使用SQL Server 配置管理器

      依次选择“开始”、“所有程序”、“Microsoft SQL Server”、“配置工具,然后选择“SQL Server 配置管理器”。

      注意

      由于SQL Server 配置管理器是Microsoft管理控制台程序的管理单元,而不是独立程序,因此SQL Server 配置管理器在较新版本的 Windows 中不显示为应用程序。 若要在 Windows 11、10 或 8 中打开SQL Server 配置管理器,请针对 Windows 版本执行以下步骤。

      • Windows 10 和 11:

        1. 选择 “起始 页”,输入 SQLServerManager13.msc (对于 SQL Server 2016 (13.x))。 对于不同版本的 SQL Server,请将 13 替换为相应的数字。
        2. 选择 SQLServerManager13.msc 以打开 Configuration Manager。 若要将 Configuration Manager 固定到起始页或任务栏,请 右键单击 SQLServerManager13.msc,然后选择“ 打开文件位置”。
        3. 在 Windows 文件资源管理器中,右键单击 SQLServerManager13.msc,然后选择“固定到”开始“或固定到任务栏”。
      • Windows 8:
        按 Windows 徽标键+Q 打开“搜索”超级按钮。 在“应用”下,输入 SQLServerManager<version_number.msc>(例如 SQLServerManager13.msc),然后按 Enter。

      1. 在 SQL Server 配置管理器中,选择“SQL Server 服务”。

      2. 在右侧窗格中,右键单击“SQL Server (instance_name>)”,然后选择“属性”。

      3. “启动参数”选项卡上,选择“现有参数”部分中以 -d 开头的行。 当前值是可编辑的。 指定启动参数框。 修复路径以反映正确的值,选择“更新”,然后选择“确定保存更改。

      4. 重新启动 SQL Server 服务。

    2. 使用注册表编辑器

      1. 导航到 SQL Server 实例的 HKLM\Software\Microsoft\MicrosoftSQL Server\MSSQL{nn}.MyInstance Hive。

      2. .. 下MSSQLServer\Parameters找到 SQLArg0 值。

      3. 更改该值以反映数据库的正确路径 master

      4. 重启 SQL Server 服务。

  3. master如果数据库存在但不可用,则可以使用以下方法之一将数据库返回到可用状态:

    • 检查文件所在文件夹的服务帐户的权限。

    • 从完整数据库备份还原 master 数据库 - 如果可以启动服务器实例。

    • 如果服务器损坏数据库 master 会阻止启动 SQL Server,请 重新生成 master 数据库

      注意

      重新 master 生成数据库将重新生成所有系统数据库。 因此,对这些数据库的任何用户修改都将丢失。