数据库 - sqlserver2005 ldf丢失,想重建,网络上的办法都无效

查看:389
本文介绍了数据库 - 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆