隐藏

数据库 'MessageManage' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。

发布:2021/8/27 9:05:25作者:管理员 来源:本站 浏览次数:1315

数据库 'MessageManage' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。


---清空日志:

USE [master]

GO

ALTER DATABASE cits SET RECOVERY SIMPLE WITH NO_WAIT

GO

ALTER DATABASE cits SET RECOVERY SIMPLE   --简单模式

GO

USE cits

GO

    DBCC SHRINKFILE (N'cits_log' , 11, TRUNCATEONLY)

GO

USE [master]

GO

ALTER DATABASE cits SET RECOVERY FULL WITH NO_WAIT

GO

ALTER DATABASE cits SET RECOVERY FULL  --还原为完全模式

GO

---清空日志:

USE [master]

GO

ALTER DATABASE cits SET RECOVERY SIMPLE WITH NO_WAIT

GO

ALTER DATABASE cits SET RECOVERY SIMPLE   --简单模式

GO

USE cits

GO

    DBCC SHRINKFILE (N'cits_log' , 11, TRUNCATEONLY)

GO

USE [master]

GO

ALTER DATABASE cits SET RECOVERY FULL WITH NO_WAIT

GO

ALTER DATABASE cits SET RECOVERY FULL  --还原为完全模式

GO



提供两种办法:(SQL Server2008)

注意:建议使用第一种方法。第二种方法只是删除已有日志文件,日后还会继续生成。


第一种方法:清空日志。

1.打开企业管理器,直接在查询分析器里执行:(如果是FULL完整类型,修改为SIMPLE简单类型)

alter database [数据库名] set recovery simple 

或者 右键你要压缩的数据库--属性--选项--恢复模式--简单

2.查询分析器,输入命令:(收缩日志文件大小,单位是M)

DBCC SHRINKFILE (N'MessageManage_log' , 10)

或者 右键你要压缩的数据库--任务--收缩--数据库--直接确认下一步。

第二种方法:
1. 删除LOG
分离数据库 企业管理器->服务器->数据库->任务->分离数据库
2. 删除LOG文件
附加数据库 企业管理器->服务器->数据库->右键->附加数据库

此法生成新的LOG,大小只有500多K。

该方法有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。