当前位置: 首页 > 面试题库 >

如何在没有日志文件的情况下附加MDF?

云镜
2023-03-14
问题内容

我正在尝试附加Yafnet.mdf在没有日志文件的SQL Server Management Studio中。

我得到下面的错误。任何想法如何做到这一点?

执行Transact-SQL语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)

无法打开物理文件“ C:\ sql_logs \ YAFnet_log.ldf”。 操作系统错误2:“
2(系统找不到指定的文件。)”。(Microsoft SQL Server,错误:5120)


问题答案:

对于您的初始情况,似乎您尝试过类似的操作(或在通过对话框时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分离期间或分离之后文件发生问题时,您现在拥有数据库的
副本。



 类似资料:
  • 问题内容: 我怎么能包括为没有MANIFEST.in文件? 我的setup.py看起来像这样: 版本: 我就是无法加入。 还是此博客文章仍然正确? http://blog.codekills.net/2011/07/15/lies,-more-lies-and-python-packaging- documentation-on– package_data-/ 不过,在过去的一个小时中,我了解到这

  • 问题内容: 示例问题: 实体: 用户包含姓名和朋友列表(用户参考) 博客文章包含标题,内容,日期和作者(用户) 需求: 我想要一个显示标题的页面以及指向用户朋友的最近10篇博客的链接。我还希望能够通过较旧的条目继续进行分页。 SQL解决方案: 因此在sql land中,它将类似于: 我能想到的GAE解决方案是: 加载用户,循环浏览好友列表并加载其最新博客帖子。最后合并所有博客文章以查找最新的10个

  • 我想使用POST动词在带有flask restplus的VM上执行操作,但当没有主体时,它总是导致400。 结果是400{“消息”:“浏览器(或代理)发送了一个此服务器无法理解的请求。” 如果我只是简单地从post转换为get,它就可以正常工作。但是,我真的想使用POST动词,因为这是我需要遵循的标准动词,用于自定义非CRUD操作。我有没有用flask restplus把自己画到角落里? 注意:对

  • 问题内容: 我正在用JavaScript编写一些代码。在这段代码中,我想读取一个json文件。该文件将从URL加载。 如何在JavaScript的对象中获取此JSON文件的包含? 例如,这是我的JSON文件,位于: 我想像这样在我的文件中使用它: 问题答案: 这是一个不需要jQuery的示例: 称呼为:

  • 我正在使用Cucumber for BDD、JUnit和Selenium构建一个自动化框架,我们在云中有一个testrail实例用于测试管理,我实现了testrail API以从那里获取所有测试用例,问题是我无法运行这些步骤获取测试用例,因为总是验证第一个功能文件是否存在。 我尝试过结果总是一样的: 在[classpath:features] 0场景0步骤0m0.019s中找不到功能 这是启动该过