数据库 - sqlserver2005 ldf丢失,想重建,网络上的办法都无效
本文介绍了数据库 - sqlserver2005 ldf丢失,想重建,网络上的办法都无效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
问题情况:ldf文件丢失,只有mdf文件
尝试办法:
1、新建数据库
2、停止服务
3、覆盖同名文件
4、启动服务后执行alter database mydb set emergency
使数据库成紧急状态
5、
sp_configure 'allow',1
go
reconfigure with override
go
update sysdatabases set status=32768 where name='mydb'
go
dbcc rebuild_log('gg','c:\mydb.ldf')
go
update sysdatabases set status=0 where name='mydb'
go
sp_configure 'allow',0
go
reconfigure with override
go
dbcc checkdb('mydb')
报错
消息 15124,级别 16,状态 1,过程 sp_configure,第 58 行
配置选项 'allow' 不是唯一的。
消息 208,级别 16,状态 1,第 1 行
对象名 'sysdatabases' 无效。
消息 2526,级别 16,状态 3,第 1 行
DBCC 语句错误。请查阅文档以了解正确的 DBCC 语法和选项。
消息 208,级别 16,状态 1,第 1 行
对象名 'sysdatabases' 无效。
消息 15124,级别 16,状态 1,过程 sp_configure,第 58 行
配置选项 'allow' 不是唯一的。
还有一个问题是
不允许对系统目录进行即席更新。,经查文档时2005以上版本不能直接更改系统表导致。对于以上数据库,请问恢复有何种手段?
sp_attach_single_file_db提示数据库未正常关闭,也不行
执行下面语句
alter database [gps-2011] set single_user
dbcc checkdb ([gps-2011],REPAIR_REBUILD)
dbcc checkdb([gps-2011],REPAIR_ALLOW_DATA_LOSS)
alter database [gps-2011] set multi_user
结果为
无法在数据库 'gps-2011' 中运行 BEGIN TRANSACTION,因为该数据库处于回避恢复模式。
解决方案
试过sp_attach_single_file_db吗
sp_attach_single_file_db @dbname='dbname',@physname='C:Databasedbname.MDF'
这篇关于数据库 - sqlserver2005 ldf丢失,想重建,网络上的办法都无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文