数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。SQL Server数据库都有log文件,log文件记录用户对数据库修改的操作。可以通过直接删除log文件和清空日志在清除数据库日志。
一、手动清除
1、分离数据库。分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任务——分离。然后勾选删除连接,分离后在数据库列表将看不到已分离的数据库。
2、手动删除LOG文件
3、附加数据库,附加的时候会提醒找不到log文件。
4、附加数据库之后将生成新的日志文件log,新的日志文件的大小事也就几百K。
当然,也可以通过如下命令来完成以上的操作:
use master; exec sp_detach_db @dbname='TestDB'; exec sp_attach_single_file_db @dbname='TestDB',@physname='D:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\TestDB.mdf'
二、清空日志:建议将其做成定时作业,而不用每次都人工干预
在SQL Server 2005和2000支持,SQL Server 2008不支持该命令:
--清空日志 DUMP TRANSACTION TestDB WITH NO_LOG --收缩数据库文件 DBCC SHRINKFILE ('TestDB_log',1) --截断事务日志 BACKUP LOG TestDB WITH NO_LOG
要在2008及以后版本支持如下命令:
USE [master] GO ALTER DATABASE [databasename] SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE [databasename] SET RECOVERY SIMPLE GO USE [databasename] GO DBCC SHRINKFILE (N'databasename_log',10,TRUNCATEONLY) GO USE [master] GO ALTER DATABASE [databasename] SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE [databasename] SET RECOVERY FULL GO
后话总结:
1、数据库的数据文件和事物日志文件不要按百分比自动扩充,而应该是按MB增长。比如每次增长100MB~200MB;
2、要定期的清理数据库的事物日志文件;
3、一旦出现和数据库相关的问题,应该第一时间去查看数据库的运行日志。
分类:
技术分享
标签:
SQL Server
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix