【命令清除】
DUMP TRANSACTION 数据库名 WITH NO_LOG
DBCC SHRINKFILE(数据库日志文件名, 1)
例:要清数据库 ABC 的日志
DUMP TRANSACTION ABC WITH NO_LOG
DBCC SHRINKFILE(ABC_Log, 1) -- 数据库日志文件名一般为:数据库名 + _Log
【用企业管理器清除】
1.右键单击需要清理的数据库,选择“属性”,在“选项”卡上,把故障还原模型设定为简单,确定后关闭;
2.再右键单击该数据库,“所有任务”-“收缩数据库”,确认后即可清除日志文件;
【2018-07-23 补充】
--****[SQL2000~SQL2005]****
-- 设定INSERT,UPDATE,DELETE时不写日志了
-- 从 SQL Server 2000 开始,如果将 trunc. log on chkpt. 选项设置为 true,则数据库恢复模式将被设置为 SIMPLE。如果将该选项设置为 false,则恢复模式将被设置为 FULL。
--格式: Exec SP_DBOPTION [数据库名], 'trunc. log on chkpt.', True
例:
Exec SP_DBOPTION SmartmzSys, 'trunc. log on chkpt.', True
-- 另外建议做一个日志收缩处理:
-- 再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,
-- 这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
--手动收缩
-1.清空日志:
DUMP TRANSACTION [数据库名] WITH NO_LOG
--2.截断事务日志:
BACKUP LOG [数据库名] WITH NO_LOG
--3.收缩数据库:
DBCC SHRINKDATABASE([数据库名])
--****[SQL2008]****
--来源:https://www.cnblogs.com/TLLi/archive/2012/07/15/2592042.html
USE[master]
GO
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE --简单模式
GO
USE 数据库名
GO
DBCC SHRINKFILE (N'数据库名_Log' , 11, TRUNCATEONLY)
GO
--注意:
--这里的DNName_Log 如果不知道在sys.database_files里是什么名字的话,可以用以下注释的语句进行查询
--USE DNName
--GO
--SELECT file_id, name FROM sys.database_files;
--GO
USE[master]
GO
ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 数据库名 SET RECOVERY FULL --还原为完全模式