如何恢复SQL Server模型数据库?

如何恢复SQL Server模型数据库?

从几天前开始,当我尝试启动 SQL Server 服务时,它失败了,并且在 NT 应用程序日志中记录了以下错误:

恢复期间发生错误,导致数据库无法‘模型'(数据库 ID 3)重新启动。诊断恢复错误并修复它们,或者从已知良好的备份中恢复。如果错误未更正或不符合预期,请联系技术支持。

当主数据库正常但我无法针对数据库运行 sql 命令(或从管理工作室连接到它)时,我该如何恢复(或重建)模型数据库,因为在这种情况下 SQL Server 甚至没有启动?

我确实在备份容器/卷中有备份(所有备份都在第二个硬盘上的单个文件中)。我认为模型数据库的恢复模型是简单的

我在文档或互联网上没有找到太多信息(例如),正如在大多数文章中所说,要么服务实际上正在运行,以便您可以对其运行命令,要么主数据库也已损坏。

ERRORLOG 的一些选定条目:

  • 尝试恢复涉及 Microsoft 分布式事务协调器 (MS DTC) 的不确定分布式事务 [...]
  • 数据库‘master’的 CHECKDB 已完成,没有错误 [...]
  • 启动数据库‘模型’。
  • 警告:没有看到LOP_CKPT_END
  • 错误:3414,严重性:21,状态:2。
  • 恢复期间发生错误,导致数据库“模型”(数据库 ID 3)无法重新启动。诊断恢复错误并修复它们,或者从已知良好的备份中恢复。如果错误未更正或不符合预期,请联系技术支持。
  • 由于服务器关闭,SQL 跟踪已停止。跟踪 ID =“1”。[..]

Microsoft SQL Server 2005 - 9.00.4053.00,在 Windows NT 5.2(Build 3790:Service Pack 2)上

有什么想法吗?非常感谢!

答案1

由于它“仅”是模型数据库,我建议仅从工作实例复制模型数据库。在这种情况下,无需重建所有系统数据库。

答案2

启动时需要模型来创建临时数据库。没有临时数据库,引擎就无法启动。您可以从另一个具有相同版本 9.00.4053 的实例复制模型。如果您修改了模型并且想保留这些修改,您可以尝试将 mdf/ldf 复制到另一台服务器并将其附加为普通、用户、数据库以尝试修复它,然后将其复制回来。

答案3

您是否尝试过从命令行启动 SQL Server?

相关内容