SQL2008 无日志附加MDF文件

2018年10月3日

SQL数据在附加的时候..有时会因为日志文件过大..或者一些其他问题造成附加失败..

笔者遇到的问题是数据库主文件(*.mdf)超过25G..日志文件超过200G..附加的耗时简直日了狗了..最后超时..附加失败..

所以就在想不要这个日志文件了行不行..最后发现了这篇文章.. 阅读原文<SQL Server附加数据库时报1813错误的解决方案> ..以下是对这篇文章的整理和补充..

 

主要报错信息

无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。

 

解决的方案:

1. 新建一个同名的数据库.最好是区分大小写.. 甚至创建时的逻辑名都尽量保持一致

2. 关闭SQL服务..不要分离新建的库..(以下是命令..在”运行”窗口执行)

Net Stop MsSqlserver

3. 这个时候因为服务停掉了..所以可以操作实际的数据文件*.mdf..用原有的同名mdf文件覆盖新建库的mdf文件..然后启动sql服务…(以下是命令..在”运行”窗口执行)

Net Start MsSqlserver

这时系统还没有检查异常..先别刷新..

4. 按顺序执行以下语句,, 注意看注释 有跳过的语句

把NewDBName改成你的数据库名字

复制代码
--设置库为紧急状态
alter database NewDBName set emergency

--设置为单用户模式
alter database NewDBName set single_user

--检查并重建日志文件
dbcc checkdb('NewDBName',REPAIR_ALLOW_DATA_LOSS)

--上条执行时间比较长。耐心等待!
--如果报错..执行以下, 没有报错..可以跳过
dbcc checkdb('NewDBName',REPAIR_REBUILD)

--恢复成多用户模式
alter database NewDBName set multi_user
复制代码

 

一般执行到这里就已经好了..

刷新看看..

声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: SQL2008 无日志附加MDF文件
本文的评论功能被关闭了.