清除数据库日志

【命令清除】
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  --还原为完全模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值