SQL2008的MDF文件无法附加上去,怎么办?

miniburger 2014-04-27 05:57:17
我有一个数据库文件被 误删了,现在只能找到一个MDF文件,怎样可以把它恢复出来呢?是MSSQL2008。我试过用多种方式都提示出错,日志文件还是指向原来的地方,我该怎样办?求教!
...全文
626 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
水族杰纶 2014-04-29
  • 打赏
  • 举报
回复
因为数据文件里有已经提交但是没有撤销的数据,也就是说这个数据库处于不一致状态 这个时候撤销需要日志文件,但是找不到日志文件 所以,很多时候并不是有MDF就能附加的,如果MDF是处于一致性状态这个时候会自动生成一个新的日志文件
dlcyj 2014-04-29
  • 打赏
  • 举报
回复
你自己恢复的文件不可能还能正常附加,删除后的文件都成碎片。
KevinLiu 2014-04-28
  • 打赏
  • 举报
回复
引用 5 楼 miniburger 的回复:
这个库没有LDF文件的。只有MDF。 第一步:先建立一个同名数据库,停止SQL SERVER2008,将原来的.mdf数据库文件覆盖刚新建的.mdf数据库文件,完成后再启动数据库 。 已经执行完成,数据库已经看到了。但是打不开。 继续执行脚本: alter database your_dbname set emergency declare @databasename varchar(255) set @databasename='your_dbname' exec sp_dboption @databasename, N'single', N'true' 这次可以成功把数据库转为紧急修复,单用户模式。 但是以下脚本不成功: dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) --将目标数据库置为单用户状态 dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' 为什么呢?修复 不了! 请指点!谢谢!
有什么错误啊?
唐诗三百首 2014-04-28
  • 打赏
  • 举报
回复
直接附加mdf文件,会自动创建一个新的ldf文件喔?
發糞塗牆 2014-04-28
  • 打赏
  • 举报
回复
如果文件没损坏,只有mdf是可以直接附加的,微软实例数据库很多下载文件都只有mdf。附加的时候把ldf删掉即可。如果文件有问题,新建一个同名的库,停掉服务,把你的mdf覆盖新库生成的mdf再做处理
xiaoxiangqing 2014-04-27
  • 打赏
  • 举报
回复
有可能是文件坏了
miniburger 2014-04-27
  • 打赏
  • 举报
回复
这个库没有LDF文件的。只有MDF。 第一步:先建立一个同名数据库,停止SQL SERVER2008,将原来的.mdf数据库文件覆盖刚新建的.mdf数据库文件,完成后再启动数据库 。 已经执行完成,数据库已经看到了。但是打不开。 继续执行脚本: alter database your_dbname set emergency declare @databasename varchar(255) set @databasename='your_dbname' exec sp_dboption @databasename, N'single', N'true' 这次可以成功把数据库转为紧急修复,单用户模式。 但是以下脚本不成功: dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) --将目标数据库置为单用户状态 dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' 为什么呢?修复 不了! 请指点!谢谢!
yoan2014 2014-04-27
  • 打赏
  • 举报
回复
引用 3 楼 miniburger 的回复:
楼上你好,这个方法 我已经试过,当我覆盖文件再启动数据库的时候,系统是找不到数据库的。根本执行不了了脚本。我用MDFVIEWER是可以找到那些记录的。
附加时把日志文件删除有试过吗? 另外,你这个库除了mdf外还有还有没有其他的ndf
miniburger 2014-04-27
  • 打赏
  • 举报
回复
楼上你好,这个方法 我已经试过,当我覆盖文件再启动数据库的时候,系统是找不到数据库的。根本执行不了了脚本。我用MDFVIEWER是可以找到那些记录的。
yoan2014 2014-04-27
  • 打赏
  • 举报
回复
建议先备份一份mdf文件保留起来,以便尝试失败后还能有其他后路可以走
yoan2014 2014-04-27
  • 打赏
  • 举报
回复

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧