方法1:将数据库改为"简单"模型,然后进行收缩数据库,就清空日志文件了。
方法2:收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
以下方法进行参考,未经过测试:
1、可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(库名)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
2、为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--SQL语句设置方式:
EXEC sp_dboption '库名', 'autoshrink', 'TRUE'
要在 SQL Server 2005 中收缩可用空间很小的事务日志文件,请按照下列步骤操作:
备份事务日志文件,以使大多数活动虚拟日志文件处于非活动状态。因此,可在以后的步骤中删除非活动的虚拟日志文件。为此,请运行与以下
Transact-SQL 语句相似的 Transact-SQL 语句。
BACKUP LOG TO DISK = ''
注意:在此语句中,
是要备份的数据库名称的占位符。在此语句中,
是备份文件完整路径的占位符。
例如,运行以下 Transact-SQL 语句。
BACKUP LOG TestDB TO DISK='C:\TestDB1.bak'
收缩事务日志文件。为此,请运行与以下 Transact-SQL 语句相似的 Transact-SQL 语句。
DBCC SHRINKFILE (, ) WITH NO_INFOMSGS
注意:在此语句中,
是事务日志文件名称的占位符。在此语句中,
是事务日志文件目标大小的占位符。目标大小必须合理。例如,您不能将事务日志文件收缩为小于 2 个虚拟日志文件的大小。
如果 DBCC SHRINKFILE 语句未将事务日志文件收缩为目标大小,则运行步骤 1 中提到的 BACKUP LOG
语句,以使更多的虚拟日志文件处于非活动状态。
运行步骤 2 中提到的 DBCC SHRINKFILE 语句。执行此操作后,事务日志文件就应接近目标大小了。
总而言之,在 SQL Server 2005 中更改了日志管理器用于选取下一个虚拟日志文件的算法。因此,在 SQL Server
2005 中收缩事务日志文件与在 SQL Server 2000 中收缩事务日志文件不同,具体表现在:
如果日志文件具有大量可用空间,在 SQL Server 2005 中收缩事务日志文件比在 SQL Server 2000
中收缩事务日志文件要快。
如果日志文件没有可用空间,在 SQL Server 2005 中收缩事务日志文件与在 SQL Server 2000
中收缩事务日志文件相同。
如果日志文件的可用空间很小,在 SQL Server 2005 中收缩事务日志文件要比在 SQL Server 2000
中执行此操作时多执行一个日志备份操作。