SQLServer日志过大导致还原失败的解决方案

背景:可能项目运行过久或其他原因(待查)导致LDF日志文件达到了254GB,无法正常还原数据库。

解决方案:
1).

RESTORE DATABASE MainData
FROM DISK='D:MainDataMainData_backup_2018_10_16_180012_8601285.bak'
WITH MOVE 'MainData' TO 'D:MSSQLMainData.mdf'
,NO_LOG 


2). 
第一步做完後,将会出现一个(Restoring)的数据库
接着再重建一个新的DB, 比如 baktest_nolog
停掉SQL服务

3). 
将第1步生成的mdf 文件 盖掉 第二步产生的 mdf 文件
启动SQL服务

4).执行以下代码

ALTER DATABASE MainData_Nolog SET EMERGENCY
GO
ALTER DATABASE MainData_Nolog SET SINGLE_USER
GO

-- 重建log
DBCC CHECKDB(MainData_Nolog,'REPAIR_ALLOW_DATA_LOSS')
GO

ALTER DATABASE MainData_Nolog SET MULTI_USER
GO
ALTER DATABASE MainData_Nolog SET ONLINE
GO


 

原文地址:https://www.cnblogs.com/cdoneiX/p/12258512.html