2017-04-19 155 views
1

最近,我在远程服务器上出现了一个问题,它包含运行的小型SQL Server。从恢复打开SQL Server .mdf和.ldf文件

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

example files

我无法连接上的SQL Server Studio的MDF文件,因为有在同一个文件夹中没有同名的LDF文件。

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

关于mdf文件与他们各自的ldf关系的任何想法?或者为了在SQL Server Studio中导入mdf文件而忽略ldf文件的方法?

+1

您应该备份数据库并存储这些备份,请勿触摸.mdf和.ldf文件。尝试从这里开始:https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/backup-overview-sql-server –

+2

此灾难恢复后的下一步是设置真实的备份方案。备份文件可能不一致。 – Hybris95

+0

@MikhailLobanov你没事。我已经建立了备份。 –

回答

2

下面是步骤的顺序,你必须意识到,this database may not be transactionally consistent.

下面是关于如何让你的数据库恢复联机

1,创建具有相同名称的数据库的步骤(假设NEWDB)
2.Shut关闭服务器
3.更换NEWDB密度板,你oldones(OLDDB LDF文件),并尝试启动SQL Server
4.Your NEWDB将不会启动,并可能*进入犯罪嫌疑人的状态
5.如果是这样的话,尝试设置数据库,应急,并设置为单用户像下面

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

6.now尝试运行DBCC CHECKDB

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

的问题,99%将被固定DBCC如果是的话,你是幸运的..

现在试图设置DB在线和多用户

*有可能是一个机会,你的数据库是干净shutdo WN(无活动事务),如果是这样的话,你可以尝试以下运行命令之前,上述steps.SQL会为你

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/

+1

谢谢!数据库几乎100%救了你的参考 –

+0

@AlexDeiwor:使用哪个选项1或2 – TheGameiswar

+1

在我的情况是第一个。 @TheGameiswar –