sql – 如何连接没有日志文件的MDF?

前端之家收集整理的这篇文章主要介绍了sql – 如何连接没有日志文件的MDF?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在没有日志文件sql Server Management Studio中附加Yafnet.mdf.

我收到以下错误.有什么想法可以怎么做?

An exception occurred while executing a Transact-sql statement or batch.
(Microsoft.sqlServer.ConnectionInfo)

Unable to open the physical file “C:\sql_logs\YAFnet_log.ldf”. Operating system
error 2: “2(The system cannot find the file specified.)”.
(Microsoft sql Server,Error: 5120)

解决方法

对于您的初始情况,您似乎尝试了这样的事情(或者当您通过对话框为GUI准备时)
CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH;

但是,该方法同时需要一个mdf文件和一个ldf文件.否则您会收到类似于以下错误消息:

Msg 5120,Level 16,State 101,Line 1
Unable to open the physical file “C:\sql_logs\YAFnet_log.ldf”. Operating system error 2: “2(The system cannot find the file specified.)”.

现在,即使你只有mdf文件,还有一种方法可以继续.假设您有一个正确从sql Server分离的mdf文件,您应该可以使用以下语法附加没有日志文件的mdf文件

CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH_REBUILD_LOG;

但是,在您的情况下,该文件sql Server没有正确分离:

Msg 1813,State 2,Line 1
The physical file name “C:\sql_logs\YAFnet_log.ldf” may be incorrect. The log cannot be rebuilt because there were open transactions/users when the database was shutdown,no checkpoint occurred to the database,or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environment failure.

有几种可能的解释,包括错误信息中提到的解释.也许是从一些无效的SAN阴影中检索到的,或者在只读时分离,或在sql Server或底层系统崩溃后恢复,或者在复制/下载期间被破坏,或者谁知道还有什么.

您将需要返回Yaf的支持或其服务提供商的支持,以查看是否提供了适当的备份,或者是否存在mdf文件的备用副本.还要记住,我们中没有一个人真的知道Yaf是或有什么办法来验证你说的是什么Yaf.

否则,似乎你没有运气,因为这个特定的mdf文件是无效的,因此不会让你很远.

这正是为什么分离/附加和/或O / S级别文件复制方法对于sql Server不是非常有用的备份(或迁移)的方法.您需要一个适当的备份/恢复计划,这意味着适当的完整/差异/日志备份适合您的数据丢失容限.分离数据库几乎总是一个较差的想法 – 当分离过程中或之后的mdf文件出现某些情况时,您现在有数据库的零拷贝.

原文链接:https://www.f2er.com/mssql/81915.html

猜你在找的MsSQL相关文章