紧急求助:SQL SERVER 数据库附加的问题。

vvwzy 2013-12-06 01:44:41
操作SQL server时,误点击了“还原”,反应过来后迅速点击了“中止”,但是悲剧依然发生了....
同事告知我不能访问数据库,我再检查,发现库显示“正在装载”,然后不知怎么的,库就被删掉了。
现在能找到.MDF文件和.LDF文件,附加操作时,提示“错误代码9004,日志文件错误”。
该库由他人管理,3月份至今没有备份过。


求助百度,多数人建议重新建一个库,然后删掉库文件,将原来的复制过来....

但就是在设置紧急模式后,我的数据库依然看不到系统表,这与网上达人们描述的不一样,以致于后面都进行不下去。


很急,百度求助未果,翻出多年没用的ID,在此发帖,希望有高人出手救小弟一命。
数据丢失,我可能要丢饭碗。
...全文
336 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 9 楼 vvwzy 的回复:
[quote=引用 8 楼 ap0405140 的回复:] 设为紧急状态看能否读到数据,然后转移走.
问题就在这儿,设置为紧急模式后,看不到系统表[/quote] 系统表,先试试恢复吧,上面的dbcc checkdb能恢复数据库不
vvwzy 2013-12-06
  • 打赏
  • 举报
回复
引用 8 楼 ap0405140 的回复:
设为紧急状态看能否读到数据,然后转移走.
问题就在这儿,设置为紧急模式后,看不到系统表
唐诗三百首 2013-12-06
  • 打赏
  • 举报
回复
设为紧急状态看能否读到数据,然后转移走.
  • 打赏
  • 举报
回复
引用 4 楼 vvwzy 的回复:
楼上的大侠们,能否贴一个完整的操作步骤,小弟我这里的错误提示很奇怪。
其实就是: 1、把你的.mdf和.ldf文件备份到一个文件夹下 2、然后,重建一个很原来数据库同名的数据库。然后关闭,sql server的服务。 3、把原来的.mdf文件,复制到新建的数据库的文件所在的目录,覆盖这些文件,注意,只需要发质.mdf,不需要.ldf文件 4、然后,重启服务。 5、尝试通过如下的代码来修复数据库:
alter database 数据库名 set emergency
go
alter database 数据库名 set single_user
go
--开始修复
dbcc checkdb(数据库名,REPAIR_ALLOW_DATA_LOSS)
go
dbcc checkdb(数据库,REPAIR_REBUILD)
go
發糞塗牆 2013-12-06
  • 打赏
  • 举报
回复
方法1:在你这一步之后:但就是在设置紧急模式后,我的数据库依然看不到系统表 执行下面语句,库名记得改
USE master
GO

ALTER DATABASE AdventureWorks2008R2 SET SINGLE_USER
go
DBCC CHECKDB(AdventureWorks2008R2,REPAIR_ALLOW_DATA_LOSS)
GO
ALTER DATABASE AdventureWorks2008R2 SET MULTI_USER
go
如果不行,试下方法2.
方法2:
附加数据库过程中,直接丢失ldf,如图中这样,删除ldf文件,让sqlserver自动产生ldf,然后使用方法1的命令修复。
如果都不行....我也没办法了。但是要说明这两个方法都有可能数据丢失,特别是你已经这么久没备份过
  • 打赏
  • 举报
回复
引用 4 楼 vvwzy 的回复:
楼上的大侠们,能否贴一个完整的操作步骤,小弟我这里的错误提示很奇怪。
贴出来看看
vvwzy 2013-12-06
  • 打赏
  • 举报
回复
楼上的大侠们,能否贴一个完整的操作步骤,小弟我这里的错误提示很奇怪。
vvwzy 2013-12-06
  • 打赏
  • 举报
回复
版主,请关注我,有私信联系。
發糞塗牆 2013-12-06
  • 打赏
  • 举报
回复
有两种方法: 1、重复你的操作,然后DBCC CHECKDB 使用REPAIR_ALLOW_DATA_LOSS选项修复数据库。 2、只用MDF附加,让系统自动生成LDF。然后使用REPAIR_ALLOW_DATA_LOSS选项修复数据库。
  • 打赏
  • 举报
回复
先建一个同名的数据库,然后把sql server的服务关掉,把原来的.mdf文件复制过去,打开服务, 然后尝试这个,你是这么恢复的不:
alter database 数据库名 set emergency
go
alter database 数据库名 set single_user
go
--开始修复
dbcc checkdb(数据库名,REPAIR_ALLOW_DATA_LOSS)
go
dbcc checkdb(数据库,REPAIR_REBUILD)
go

22,209

社区成员

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

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