如何解决如何在没有日志文件的情况下附加MDF?
对于您的初始情况,似乎您尝试过类似的操作(或在通过对话框时GUI为您准备的任何操作):
CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH;
但是,此方法需要一个mdf
文件和一个ldf
文件。否则,您将收到类似于以下内容的错误消息:
消息5120,级别16,状态101,第1行 无法打开物理文件“ C:\ sql_logs \ YAFnet_log.ldf”。操作系统错误2:“ 2(系统找不到指定的文件。)”。
现在,即使您只有mdf
文件,也有一种方法可以继续。假设您mdf
已从sql
Server正确分离了一个文件,则应该能够mdf
使用以下语法在没有日志文件的情况下附加该文件:
CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH_REBUILD_LOG;
但是,似乎在您的情况下,该文件未与sql Server正确分离:
消息1813,级别16,状态2,第1行 物理文件名“ C:\ sql_logs \ YAFnet_log.ldf”可能不正确。无法重建日志,因为关闭数据库时有打开的事务/用户,数据库没有检查点,或者数据库是只读的。如果由于硬件或环境故障而手动删除或丢失了事务日志文件,则可能会发生此错误。
有几种可能的解释,包括错误消息中提到的那些。可能是从某个无效的SAN阴影中检索到的,或者是在只读时已分离的,或者是在sql Server或基础系统崩溃,在复制/下载过程中损坏,或者其他人知道之后恢复的。
您将需要返回Yaf的支持或服务提供商的支持,以查看是否有
可用,否则,请查看mdf
文件的备用副本。还要记住,我们当中没有人真正知道Yaf是什么,也没有任何方法可以验证您在谈论哪个Yaf。
否则,您似乎不走运,因为此特定mdf
文件无效,因此不会使您走得太远。
这就是为什么分离/附加和/或O / S级别的文件复制方法对于sql
Server而言不是非常有用的备份(或迁移)方法的原因。您需要适当的备份/恢复计划,这意味着要进行适当的完全/差异/日志备份,以适合您的数据丢失容忍度。分离数据库几乎总是一个次要的想法-在mdf
分离期间或分离之后文件发生问题时,您现在拥有数据库的 副本。
解决方法
我正在尝试附加Yafnet.mdf
在没有日志文件的SQL Server Management Studio中。
我得到下面的错误。任何想法如何做到这一点?
执行Transact-SQL语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)
无法打开物理文件“ C:\ sql_logs \ YAFnet_log.ldf”。 操作系统错误2:“
2(系统找不到指定的文件。)”。(Microsoft SQL Server,错误:5120)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。