gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 07:42:36 27 4
gpt4 key购买 nike

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

我收到以下错误。有什么想法可以做到这一点吗?

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, Level 16, 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 文件无效,因此不会让您走得太远。

这正是为什么分离/附加和/或操作系统级文件复制方法对于 SQL Server 来说不是非常有用的备份(或迁移)方法。您需要一个适当的备份/恢复计划,这意味着采取适合您对数据丢失的容忍度的适当的完整/差异/日志备份。分离数据库几乎总是一个糟糕的想法 - 当分离期间或之后 mdf 文件发生问题时,您现在拥有个副本您的数据库。

关于sql - 如何在没有日志文件的情况下附加 MDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14248260/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com