无法启动 SQL Server Instance 2008 R2 - DB 文件已损坏

5 sql-server-2008 sql-server sql-server-2008-r2

我无法启动 SQL Server 2008 R2 生产数据库实例。读取日志文件后的错误信息是

" 传递给数据库 'master' 中的日志扫描的日志扫描编号无效。此错误可能表示数据损坏或日志文件 (.ldf) 与数据文件 (.mdf) 不匹配。如果在复制期间发生此错误,重新创建出版物。”

在阅读了几篇文章后,我意识到我的 MASTER DB 文件已损坏。我遵循了以下设置

Copy the Master.mdf and Masterlog.ldf file from Template location to My Database Data folder.

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Templates to D:\MSSQL\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
Run Code Online (Sandbox Code Playgroud)

注意:当我复制所有 DB 文件(如 Master、MasterLog、MSDBData、MSDBlog、Model 和 ModelLog)时,会发生同样的错误

When i run my MSSQLSEVER instance different problem occur.
Run Code Online (Sandbox Code Playgroud)

在我的服务器中,我只有 C、D 驱动器我没有 E 驱动器。我如何在错误路径下覆盖这些。

错误日志

2012-10-24 02:51:12.79 spid5s Error: 17204, Severity: 16, State: 1.

2012-10-24 02:51:12.79 spid5s FCB::Open failed: Could not open file e:\sql10_main_t.obj.x86fre\sql\mkmastr\databases\objfre\i386\MSDBData.mdf for file number 1. OS error: 3(The system cannot find the path specified.).

2012-10-24 02:51:12.79 spid5s Error: 5120, Severity: 16, State: 101.

2012-10-24 02:51:12.79 spid5s Unable to open the physical file

"e:\sql10_main_t.obj.x86fre\sql\mkmastr\databases\objfre\i386\MSDBData.mdf". Operating system error 3: "3(The system cannot find the path specified.)".

2012-10-24 02:51:12.79 spid5s Error: 17207, Severity: 16, State: 1.

2012-10-24 02:51:12.79 spid5s FileMgr::StartLogFiles: Operating system error 2(The system cannot find the file specified.) occurred while creating or opening file 'e:\sql10_main_t.obj.x86fre\sql\mkmastr\databases\objfre\i386\MSDBLog.ldf'. Diagnose and correct the operating system error, and retry the operation.

2012-10-24 02:51:12.79 spid5s File activation failure. The physical file name "e:\sql10_main_t.obj.x86fre\sql\mkmastr\databases\objfre\i386\MSDBLog.ldf" may be incorrect.
Run Code Online (Sandbox Code Playgroud)

小智 1

如果您已将主服务器复制到以前的不同位置,则必须在配置管理器中更改路径 -> 右键单击​​ SQL Server 实例 -> 属性 -> 高级 -> 启动参数。-d 表示数据文件,-l 表示日志文件的路径(新的!)