一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

SQL SERVER 2008数据库日志文件收缩的做法实用指南

时间:2026-08-31 19:40:01 编辑:袖梨 来源:一聚教程网

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“SQL SERVER 2008数据库日志文件收缩的做法”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

理解这一步时,最近公司的数据库随着业务量的增多,日志文件巨大(超过300G),造成磁盘空间不够用,进而后来的访问数据库请求无法访问。

从实现思路看,网上类似的方法也很多,但不可行,如下所示是我实践过,可行的,将日志文件收缩至任意指定大小的方法:

第一步: 从实现思路看,在SQL SERVER Management Studio 中右击数据库选择“属性”---》“选项”,将恢复模式由默认的“完整”改为“轻松”。

第二步:落到代码里,再次右键选择数据库的“任务”--》“收缩”---》“文件”菜单,进入收缩文件页面,将(要收缩的)文件类型选定为“日志”, 将页面下面的“收缩操作”单选框里选择“在释放未采用的空间前重新组织页,将文件收缩到:”,随后填写合适的收缩后的日志文件大小。

最后点击这个页面下面的“确定”按钮,以执行收缩文件(日志)操作。

执行完毕后,用户能够查到到的确该日志文件收缩到指定的大小了。

理解这一步时,将文件收缩到 0 即可。瞬间就ok了,比用命令快多了,对于36g的日志也很快。

第三步:在SQL SERVER Management Studio 中右击数据库选择“属性”---》“选项”,将恢复模式由默认的“轻松”改为“完整”。

下面是最常用的方法一


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 库名
--GO
--SELECT file_id,name FROM sys.database_files;
--GO

USE [master]
GO
ALTER DATABASE SCDMS SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE SCDMS SET RECOVERY FULL --还原为完全模式
GO

落到代码里,一般来说上面的sql对于日志2个G内速度还能够,如果不行请参考下面的步骤

1:随后在网上查找命令,找到日志文件类型为 REPLICATION 即发布状态

2:又查找到执行命令,该命令显示很多status为2的日志,即没有提交的。

DBCC LOGINFO('数据库名称')

3:直接选择我之前新建的发布,提示以下错误:

落到代码里,sqlserver无法作为数据库主体执行,因为主体 "dbo" 不存在...
理解这一步时,查找到以下命令,为用户添加数据库角色时提示已经存在此帐号请查看数据库下是否已经存在该帐号同时删除重新授权

USE 库名
EXEC sp_changedbowner 'sa'

4:随后再删除发布和订阅即成功。最后再执行第一步的SQL命令,日志文件缩小成功。

方法二、先设置恢复模式为“轻松恢复”模式,再收缩:


USE BigData ;
GO
ALTER DATABASE BigData
SET RECOVERY SIMPLE;--设置简单恢复模式
GO
DBCC SHRINKFILE (BigData_Log, 1);
GO
ALTER DATABASE BigData
SET RECOVERY FULL;--恢复为原模式
GO

方法三、


USE BigData;
GO
BACKUP LOG DATABASENAME TO DISK='d:test.bak'
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (Bigdata_Log, 1);
GO

实际处理时,以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多兼容脚本之家。

您可能感兴趣的文章:
  • SQL Server无法收缩日志文件的原因分析及解决办法
  • sqlserver 实现收缩数据库日志操作
  • SQL SERVER日志进行收缩的图文教程
  • MYSQL SERVER收缩日志文件实现方法
  • SQL server数据库日志文件收缩操作方法

热门栏目