首页 > 数据库 >SQL Server 清理日志

SQL Server 清理日志

时间:2022-08-29 15:25:05浏览次数:69  
标签:log 数据库 Server SQL GO 日志

数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。SQL Server数据库都有log文件,log文件记录用户对数据库修改的操作。可以通过直接删除log文件和清空日志在清除数据库日志。

 

一、手动清除

1、分离数据库。分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任务——分离。然后勾选删除连接,分离后在数据库列表将看不到已分离的数据库。

image

2、手动删除LOG文件

3、附加数据库,附加的时候会提醒找不到log文件。

image

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、一旦出现和数据库相关的问题,应该第一时间去查看数据库的运行日志。

标签:log,数据库,Server,SQL,GO,日志
From: https://www.cnblogs.com/zhengxianfa/p/16636046.html

相关文章