从恢复中打开 SQL Server .mdf 和 .ldf 文件
Posted
技术标签:
【中文标题】从恢复中打开 SQL Server .mdf 和 .ldf 文件【英文标题】:Open SQL Server .mdf and .ldf files from recovery 【发布时间】:2017-09-15 19:33:44 【问题描述】:最近我在一个远程服务器上遇到了一个问题,该服务器包含一个正在运行的小型 SQL Server。
我使用PhotoRec 7.0 恢复所有文件,包括文件 mdf 和 ldf,但现在我在名称和文件之间没有任何关系。请参阅下面的示例:
我无法在 SQL Server Studio 上附加 mdf 文件,因为同一文件夹中没有同名的 ldf 文件。
我使用第三方工具打开 mdf 文件,我可以看到这些文件上的内容,但检查 ldf 没有运气。
对关系 mdf 文件及其各自的 ldf 有什么想法吗?或者省略 ldf 文件以便在 SQL Server Studio 中导入 mdf 文件的方法?
【问题讨论】:
您应该备份数据库并存储这些备份,不要触摸 .mdf 和 .ldf 文件。尝试从这里开始:docs.microsoft.com/en-us/sql/relational-databases/… 这次灾难恢复之后的下一步是设置一个真正的备份方案。备份文件可能不一致。 @MikhailLobanov 你没事。我保证备份已经设置好了。 【参考方案1】:以下是步骤顺序,您必须注意,this database may not be transactionally consistent.
以下是如何让您的数据库恢复在线的步骤
1.创建一个同名的数据库(比如说 newdb ) 2.关闭服务器 3.用你的oldones(olddb)替换newdb mdf,ldf文件并尝试启动sql server 4.您的 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 将为您创建一个新的日志文件
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/
【讨论】:
谢谢!!根据您的参考,数据库几乎 100% 被救出 @AlexDeiwor:使用哪个选项 1 或 2 就我而言是第一个。 @TheGameiswar以上是关于从恢复中打开 SQL Server .mdf 和 .ldf 文件的主要内容,如果未能解决你的问题,请参考以下文章
MS SQL Server数据库修复/MDF数据文件数据恢复/MDF质疑/mdf无法附加