SQL Server 2005无日志文件附加数据库

作者在 2011-05-09 11:33:58 发布以下内容

两三天没做程序,今天想接着做,发现程序找不着了。。。想不起来什么时候误删的,被人恶搞的机会也不大,总之,心里颤了几颤,没有程序,马上到眼前的毕业答辩怎么办?还好打了几天游戏,没有在盘里移动和下载东西,赶紧用软件恢复,还不错,用了一个小时,所有的文件都恢复了。可是数据库出了问题了,将数据库再次附加到企业管理器里就出错了,我又慌了,数据虽然不多,要重新做一遍没有三天的工作量是不行的...,后来在网上查了很多资料,最终根据下面引用的这篇文章里的方法将数据库重新附加了。向文章的作者表示敬意,同时留下个记录以防类似事件的发生。

http://www.cnblogs.com/ATree/archive/2010/05/16/Sqlserver2005-mdf-ldf.html(转载请注明来源)

解决办法:

1、新建一个同名数据库。

2、停止数据库服务,覆盖新建的数据库主文件(小技巧:最好放在同一个磁盘里面,把新建的数据库主文件删掉或移开,再把要恢复的数据库主文件剪切过去,这样就可以节省时间。)

3、启动数据库服务,数据库变为置疑或可疑状态。然后在查询分析器中运行:

alter database 无日志文件的数据库名称 set emergency

设置为紧急状态。

4、再运行:

alter database 无日志文件的数据库名称 set single_user

或者:

Sp_dboption '无日志文件的数据库名称', 'single user', 'true'

设置为单用户模式。

5、检查并重建日志文件,运行:

dbcc checkdb('无日志文件的数据库名称',REPAIR_ALLOW_DATA_LOSS)

这个时间比较长。耐心等待!如果有错误提示,再运行:

dbcc checkdb('无日志文件的数据库名称',REPAIR_REBUILD)

进行修复。如果没有错误,可以跳过。

6、恢复成多用户模式

alter database 无日志文件的数据库名称 set multi_user

或者:

Sp_dboption '无日志文件的数据库名称', 'single user', 'false'

刷新数据库,你就可以看到已经修复好的数据库了。

也有人推荐下面这种方法,我试用没成功。

CREATE DATABASE DBname
ON (FILENAME = 'D:\SalesData\archdat1.mdf')
FOR ATTACH_REBUILD_LOG ;
GO

数据库 | 阅读 3591 次
文章评论,共0条
游客请输入验证码
浏览95104次
最新评论