WHCSRL 技术网

已解决:SQL Server 2012 事务日志已满,原因为“CheckPoint“,报9002错误,无法操作数据。

客户现场的数据库,现象是写入、修改、删除都执行不了,日志文件大小修改不了,增加日志文件同样提示“事务日志已满,原因为CheckPoint“,网上关于SQL Server 2012此错误基本没有,查询数据库状态为CheckPoint状态,其它正常的数据库都是Nothing,尝试过以下方法:

1、脱机、分离,重新附加时删除Log文件,无效,同样错误

2、脱机、分离,创建同名数据库,文件名和日志文件也相同,停止数据库服务,将有数据的数据库主文件覆盖新建的,启动数据库服务,数据库变成成恢复,使用语句修复,报文件不同。

3、通过修改CheckPoint参数为10分钟,保存参数,重启,同样错误

4、按错误提示截断日志,发现SQL Server 2012不再支持日志截断

搞了两个小时,只好去bing搜索国际版,关键词CheckPoint  SQL Server 2012   9002,还真找到了一篇文章,通过Rebuild日志文件解决,语句如下:

  1. ALTER DATABASE DatabaseName set EMERGENCY
  2. ALTER DATABASE DatabaseName REBUILD LOG ON (NAME='DatabaseName_log',FILENAME='D:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATADatabaseName_Log.LDF')
  3. ALTER DATABASE DatabaseName set ONLINE
  4. ALTER DATABASE DatabaseName SET MULTI_USER

原地址:SQL SERVER - Transaction Log Full Due to 'CHECKPOINT' | SQL Conjuror

推荐阅读