随着系统运行时间的推移,数据库日志文件会变得越来越大,这时我们需要对日志文件进行备份或清理。

下面是日常运维中比较常用的日志清理SQL语句

--- 查询数据库log名称
USE testdb
SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('testdb') AND type_desc = 'LOG';

--- 设置为简单模式
USE testdb
GO
ALTER DATABASE testdb SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE testdb SET RECOVERY SIMPLE   --简单模式
GO

--- 清理语句
USE testdb
GO
DBCC SHRINKFILE (N'testdb_log' , 1, TRUNCATEONLY)  --设置压缩后的日志大小为1M,可以自行指定
GO

--- 把数据库再还原为完全模式
USE testdb
GO
ALTER DATABASE testdb SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE testdb SET RECOVERY FULL  --还原为完全模式
GO

将testdb换成你需要处理的数据库名,该操作会清理日志,建议先备份再操作。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐