/*查看其恢复模式是否为SIMPLE类型*/
SELECT NAME, recovery_model_desc FROM sys.databases
/*如果是FULL类型,修改为SIMPLE类型*/
ALTER DATABASE 数据库名称 SET RECOVERY SIMPLE
GO
/*收缩日志文件大小(单位是M)*/
DBCC SHRINKFILE (数据库名称_Log, 1)
GO
/*恢复成FULL类型*/
ALTER DATABASE 数据库名称 SET RECOVERY FULL
GO
/*检查日志文件名称 和收缩后的日志文件大小*/
SELECT NAME, size FROM sys.database_files where name='数据库名称_Log'
其实,写这个贴,缘由是某天上班 正在听音乐看小说,突然接到电话说,程序不能用了。
吓尿了,一看,原来事务日志已满。。
注意:收缩事务日志不能作为运维的常态。
为什么要收缩数据库
SQL Server 2000采取预先分配空间的方法来建立数据库的数据文件或者日志文件,比如数据文件的空间分配了100MB,而实际上只占用了50MB空间,这样就会造成存储空间的浪费。为此,SQL Server 2000提供了收缩数据库的功能,允许对数据库中的每个文件进行收缩,删除已经分配但没有使用的页。
不能在备份数据库时收缩数据库,也不能在收缩数据库 时创建或备份数据库。能将整个数据库收缩到比其原始大小还要小。
文件的收缩操作始终从文件末端开始反向进行。例如,如果要将一个5GB的文件收缩到4GB, 则SQL Server 2000将从文件的后一个1GB开始释放尽可能多的空间。如果文件中被释放的部分包含使用过的页面,则SQL Server 2000会将这些页面重新定位到保留的部分。