SQL Server日志文件庞大收缩方法(实测好用)

原文:SQL Server日志文件庞大收缩方法(实测好用)

这两个命令连续执行,间隔时间越少越明显(可多次运行),直到达到效果

--截断
BACKUP LOG CloudMonitor TO DISK=‘NUL‘
--收缩
DBCC SHRINKFILE(‘CloudMonitor_log‘)

以后就可以采用常规的定期备份日志(比如一小时一次)来防止日志文件无限增长。

SQL Server日志文件庞大收缩并非易事, 文章中提到:

由于首日志、尾日志和空间重复利用的原因,当备份日志后产生了日志截断,就会标记为可重复利用,但是只有文件尾部可用空间能被收缩。 这样就导致了日志文件的可用空间有98%却怎么收缩都没动静。通过备份+收缩连续操作尽可能让跳过“Active Log”

“收缩文件”尝试过,都无法达到效果:

1. 释放未使用的空间

2. 在释放未使用的空间前重新组织页


针对此问题,网上还有一些做法是通过修改为“简单恢复”模式进行收缩,但此方法不适用于AlwaysOn


当然,微软官方也对此问题作出来说明:

“在某些情况下,直到下一个日志截断后,才能收缩日志。”

官方文档:

收缩事务日志

可能延迟日志截断的因素

SQL Server日志文件庞大收缩方法(实测好用),布布扣,bubuko.com

时间: 2024-08-11 23:38:40

SQL Server日志文件庞大收缩方法(实测好用)的相关文章

SQL Server日志文件过大 大日志文件清理方法 不分离数据库

SQL Server日志文件过大    大日志文件清理方法 ,网上提供了很多分离数据库--〉删除日志文件-〉附加数据库 的方法,此方法风险太大,过程也比较久,有时候也会出现分离不成功的现象.下面的方式是不需要做数据库分离和附加操作的. SQL 2008收缩清空日志方法: 1.在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完整模式,一定必务要再改回完整模式,不然数据库就不支持时间点备份了.1).选择数据库–属性-选项-恢复模式–选择简单.2).收缩数据库后,再调回完整.2

SQL SERVER2008 数据库日志文件的收缩方法

最近公司的数据库随着业务量的增多,日志文件巨大(超过300G),造成磁盘空间不够用,进而后来的访问数据库请求无法访问. 网上类似的方法也很多,但不可行,如下是我实践过,可行的,将日志文件收缩至任意指定大小的方法: 第一步: 在SQL SERVER Management Studio 中右击数据库选择"属性"--->"选项",将恢复模式由默认的"完整"改为"简单". 第二步:再次右键选择数据库的"任务"

SQL server 日志文件收缩 与日志文件备份

在完整恢复模式下,SQL server需要定期备份日志,否则,日志文件会一直扩大,直到占满硬盘大小,在进行一次完整备份之后,可以定期备份日志文件 脚本如下: DECLARE @strbackup NVARCHAR(100) --改为日期加时间的 SET @strbackup = 'F:\bak\Test_bak_log_' + REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120), '-', ''), ' ', ''), ':', ''

SQL Server 日志文件增长原因定位

方法 1.sys.databases; ---------------------------------------------------------------------------------------------------------------------------------------------------------- 日志文件增长原因: 1.数据库的恢复不是simple.但是又长时间没有进行备份. 2.数据库中有一个很长时间没有提交的事务. 3.数据库有一个很大的事

缩小sql server 日志文件

-- Sql Server 2008 USE [master] GO ALTER DATABASE [UENCDOP1] SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE [UENCDOP1] SET RECOVERY SIMPLE --简单模式 GO USE [UENCDOP1] GO DBCC SHRINKFILE (N'PENCDOP1_log' , 11, TRUNCATEONLY) GO --这里的DNName_Log 如果不知道在s

SQL Server 日志文件查看器提示超时连接

今天早上碰到的一个问题,因为解决了所以打算记录下来做个技术储备,顺便为其他跟我一样碰到相关问题但是不懂解决还没找到解决方法的人提供一个帮助. 不知道有没有人遇到过这个问题,打开作业历史记录查看的时候发现提示超时,如下图: 但是更坑的是,其中一部分作业历史记录是可以正常查询的,如下图: 花了一个上午的时间度娘了下没有找到类似的问题和原因,又去加的技术群里面问了问,各位大神很热情的帮忙,虽然没有得到具体的解决方法,但是从一个大神那里得到了一点灵感,有可能是历史记录数量太多的问题引起的(其实在看到连接

SQL Server 日志和代理的错误日志

本文介绍的日志不是事务日志,而是SQL Server 日志和代理的错误日志,按照主体把错误日志分为SQL Server.SQL Server Agent.Database Mail,以及 Windows NT.SQL Server使用日志记录数据库引擎启动和运行过程中产生的信息,这些信息不一定是“错误”的消息,按照消息的严重程度,分为三个级别,分别是:信息(Information),警告(Warning)和错误(Error),SQL Server日志会按照消息发生的时间顺序记录消息.SQL Se

SQL SERVER 日志已满的处理方法 (转)

事务日志文件Transaction Log File是用来记录数据库更新情况的文件,扩展名为ldf.在 SQL Server 7.0 和 SQL Server 2000 中,如果设置了自动增长功能,事务日志文件将会自动扩展.一般情况下,在能够容纳两次事务日志截断之间发生的最大数量的事务时,事务日志的大小是稳定的,事务日志截断由检查点或者事务日志备份触发.然而,在某些情况下,事务日志可能会变得非常大,以致用尽空间或变满.通常,在事务日志文件占尽可用磁盘空间且不能再扩展时,您将收到如下错误消息:Er

如何清除sql server日志

1.打开查询分析器,输入命令 DUMP TRANSACTION 数据库名 WITH NO_LOG 2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了. 清除Log有两种方法: 1.自动清除法 开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log.此方法的优点是无须人工干预,由SQL Server自动执行,并且一般