从恢复中打开SQL Server .mdf和.ldf文件

时间:2017-04-19 14:01:05

标签: sql-server recovery data-recovery

最近我在远程服务器上遇到了一个问题,该服务器包含一个运行的小型SQL Server。

我使用PhotoRec 7.0来恢复所有文件,包括文件mdf和ldf,但现在我没有名称和文件之间的任何关系。见下面的例子:

example files

我无法在SQL Server Studio上附加mdf文件,因为同一文件夹中没有同名的ldf文件。

我已经使用第三方工具打开mdf文件,我可以看到该文件的内容,但检查ldf没有运气。

关于mdf文件与各自的ldf关系的任何想法?或者省略ldf文件以便在SQL Server Studio中导入mdf文件的方法?

1 个答案:

答案 0 :(得分:2)

以下是一系列步骤,您必须注意this database may not be transactionally consistent.

以下是如何让您的数据库重新联机的步骤

1.创建一个具有相同名称的数据库(比如说newdb)
2.关闭服务器
3.用oldones(olddb)替换newdb mdf,ldf文件并尝试启动sql server
你的newdb将无法启动,可能会进入可疑状态 5.如果是这种情况,请尝试将数据库设置为紧急情况并设置为单用户,如下所示

alter database dbname set SET EMERGENCY;
alter database dbname  SET SINGLE_USER

6.现在尝试运行DBCC checkDB

DBCC CHECKDB (N'dbname', REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS, NO_INFOMSGS;

99%的问题将由DBCC解决,如果是这样,你很幸运..

现在尝试设置数据库在线和多用户

*可能有一个机会,你的数据库干净地关闭(没有活动的事务),如果是这种情况,你可以尝试运行下面的命令,在上面的步骤之前.SQL将为你创建一个新的日志文件< / p>

Create database dbname 
    On 
    (   
    Filename= 'path where you copied files'   
    )
    For attach; 

<强>参考文献:
http://www.sqlskills.com/blogs/paul/checkdb-from-every-angle-emergency-mode-repair-the-very-very-last-resort/
http://www.sqlskills.com/blogs/paul/corruption-last-resorts-that-people-try-first/