SQL2008 无日志附加MDF文件

本文介绍了解决SQLServer数据库附加失败的方法,特别是当主文件超过25GB且日志文件超过200GB时的处理流程。通过新建同名数据库、调整服务状态及执行特定SQL语句来修复数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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

 

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

刷新看看..

 

转载于:https://www.cnblogs.com/iiwen/p/6256925.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值