SQLServer2005无日志文件附加数据库
解决办法:
1、新建一个同名数据库。
2、停止数据库服务,覆盖新建的数据库主文件
(最好放在同一个磁盘里面,把新建的数据库主文件删掉或移开,再把要恢复的数据库主文件Copy进去。)
3、启动数据库服务,数据库变为置疑或可疑状态(有数据库名节点,无子节点)。然后在查询分析器(新建查询的Sql 文件)中运行:
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'
刷新数据库,你就可以看到已经修复好的数据库了。
eg: 以zhishiku数据库为例,其步骤:
alter database zhishiku set emergency
go
alter database zhishiku set single_user
go
dbcc checkdb('zhishiku',REPAIR_ALLOW_DATA_LOSS)
go
dbcc checkdb('zhishiku',REPAIR_REBUILD)
go
alter database zhishiku set multi_user