解决日志占用大量空间问题

作者:leen 来源:ITPOW 日期:2005-10-31

本文行文比较早,所以有些内容不适合新的 SQL Server 数据库,如果您的 SQL Server 比较新,其实很简单。

第一步、在数据库上右键 -> 属性 -> 选项 -> 将“恢复模式”改为“简单”。

第二步、执行:DBCC SHRINKDATABASE (数据库名)  就可以了,或者数据库上右键 -> 任务 -> 收缩 -> 数据库。

恢复模式为“简单”,表示记录一旦实施,无法撤销,而“完整”表示可以通过日志撤销刚才对数据库的 SQL 操作,而“大容量日志”表示只要不是批处理,都可以通过日志撤销刚才对数据库的 SQL 操作。

随着数据库的运行,数据库占用的磁盘空间越来越大,这是由于日志所造成的,简单使用收缩数据库,往往无法减小日志。使用如下代码:

BACKUP LOG 数据库名 WITH NO_LOG
BACKUP LOG 数据库名 WITH TRUNCATE_ONLY
DBCC SHRINKDATABASE (数据库名)

NO_LOGTRUNCATE_ONLY 无须备份复制日志即删除不活动的日志部分,并且截断日志。

NO_LOG  和  TRUNCATE_ONLY 是同义的,任选一个使用。使用 NO_LOG 或 TRUNCATE_ONLY 备份日志后,记录在日志中的更改不可恢复。为了恢复,请立即执行 BACKUP DATABASE。另请参见“收缩数据库”。

DBCC SHRINKDATABSE 收缩数据库。

相关文章