我有一个.MDF
数据库备份。我需要来自此.MDF
的一些信息。
当我尝试附加此.MDF
时,它需要与其一起提供的日志文件。
我不需要日志文件,但它坚持使用.LDF
文件。
我试图将它指向与其相同的日志文件,但我收到错误:
(因为当前版本的数据库正在使用它。)
我无法将其附加到其他服务器,因为它最初是在SQL Server 2012上,而且是我唯一的SQL Server 2012服务器。
如何在没有.MDF
的情况下重新附加.LDF
?
我正在添加文本版本以防其他人正在寻找此问题的解决方案:
Msg 5120,Level 16,State 101,Line 1 无法打开物理文件“D:\ SQL Logs .... Custom_log.ldf”。操作系统错误32:“32(进程无法访问该文件,因为它正被另一个进程使用。)” 文件激活失败。物理文件名“D:\ SQL Logs .... Custom_log.ldf”可能不正确 无法重建日志,因为数据库关闭时没有打开的事务/用户,数据库没有检查点,或者数据库是只读的。如果由于硬件或环境故障手动删除或丢失事务日志文件,则可能发生此错误。
Ms Ms 1813,Level 16,State 2,Line 1
无法打开新数据库'TestDb'。 CREATE DATABASE被中止。
我不知道这是否相关,但如果我不需要,我实际上不需要附加.MDF
文件。我只需要从那里读一张桌子。
答案 0 :(得分:4)
如果您使用2012年
使用"FOR ATTACH_FORCE_REBUILD_LOG"
CREATE DATABASE [XXXdatabasname] ON
( FILENAME = N'databaseXXXFilePath.mdf' )
FOR ATTACH_FORCE_REBUILD_LOG
答案 1 :(得分:-2)
您可以在没有相应LDF文件的情况下附加MDF文件。为此,我会使用sp_attach_single_file_db