tempdb 日志文件增长的问题
前两天在一个客户那里发现tempdb log 文件增长很大,已经使用40GB了,而tempdb log 文件总的分配空间是70GB,并且日志空间貌似不能重用,他们使用sql 2012 打的sp4补丁,远程分析问题,没有发现长时间开启的事物,业务使用事物都是使用完即时关闭的,而且通过查询tempdb log 文件大小发现
--日志文件使用情况
SELECT s.name,
convert(float,s.size) * CONVERT(float,8) / 1024.0 AS [初始大小MB],
convert(float,i.size) * (8192.0/1024.0)/1024.0 as [分配空间MB],
CAST(FILEPROPERTY(s.name, 'SpaceUsed') AS float)* CONVERT(float,8) / 1024.0 AS [使用空间MB]
FROM
sys.master_files AS s ,dbo.sysfiles AS i
WHERE s.name=i.name AND
(s.type = 1 and s.database_id = db_id())
AND s.name = 'templog'
每隔一两秒的样子,日志文件会增加 3~10 MB的使用空间,因为客户使用的大量的临时表,这个导致tempdb 的log 文件增长,奇怪的是为什么 之前的脏页不会被重用,而是要重新分配新的空间? 唯一能解释的是可能有 事物长时间开着导致,但前面我们说过通过跟踪查询,没有发现有长时间的事物开启,所以有事务导致tempdb log 文件持续增加 ,这个原因 就不成立啦;
通过查阅资料发现,在简单恢复模式下 ,当日志已满 70% 数据库引擎会自动触发检查点, 而我们上面所说客户日志分配空间是 70GB ,已经使用了 40GB,所以还不满足触发检查点刷新脏页的条件;而另一种自动触发自动检查点的机制(恢复间隔), 则不适用于tempdb ,为了验证这观点,我做了实验 如下:

在本地设置tempdb log的初始大小 109MB,然后创建一张临时表,再写入数据,看看日志文件的使用情况,
在创建临时表前 先查询下 日志文件的使用情况,使用空间 3.3MB

创建临时表 ,再插入一万条数据

再次查看 tempdb 日志文件的使用情况

这时我们可以 继续插入 数据,但不要超过日志70%的空间 ,这时再次记录下使用空间,因为sqlserver 2012 的默认的检查点时间为3分钟 ,我们等3分钟再看 ,会不会自动触发检查点刷新脏页,把日志使用空间回收,

三分钟后 再查,日志使用空间依旧没有任何变化

如果再插入一万条数据 大概会有 十几MB 的增长,而这时就已经达到 日志70% 使用的条件,会触发检查点去执行,
我们执行下看看 ,#dddd表中已经有8万条数据了


而日志的使用空间,已经因检查点的执行 ,变回为8.5MB的使用空间了。
所以经过本次测试证实之前的观点是对的,那么我后来把客户的 70GB tempdb log 给设小了 ,设成8GB ,观察了一天,日志使用空间始终在6GB以下。
tempdb 日志文件增长的问题的更多相关文章
- SQL Server 日志文件增长原因定位
方法 1.sys.databases; -------------------------------------------------------------------------------- ...
- MS SQL 监控数据/日志文件增长
前几天,在所有数据库服务器部署了监控磁盘空间的存储过程和作业后(MS SQL 监控磁盘空间告警),今天突然收到了两封告警邮件,好吧,存储规划是一方面,但是,是不是要分析一下是什么原因造成磁盘空 ...
- Sharepoint日志文件增长巨大的解决办法/缩小日志/删除日志
前段时间为公司开发部门建立了TFS平台,其中包括WSS3(MOSS07也可,但是如果不是必须,建议使用轻量级的WSS3).TFS建成之后,程序员们用起来都很满意,总监也很关注. 但是今天早上忽然发现连 ...
- 20170712 SQL Server 日志文件收索
-- 1 日志文件增长过快,未进行任务计划截断备份 造成文件过大199G 左右,而可用空间不足8% -- 2 日志备份之前,需要一次完整备份 再进行截断备份 出现可用空间99% 此时可以选择收索数据库 ...
- flume 增量上传日志文件到HDFS中
1.采集日志文件时一个很常见的现象 采集需求:比如业务系统使用log4j生成日志,日志内容不断增加,需要把追加到日志文件中的数据实时采集到hdfs中. 1.1.根据需求,首先定义一下3大要素: 采集源 ...
- 1. 跟踪标记 (Trace Flag) 1117, 1118 文件增长及空间分配方式
跟踪标记:1117 功能: 默认,同一个文件组下的多个文件,如果某个文件没有可用空间,且设置了自动增长,则该文件自动增长,其他文件大小保持不变: 开启后,同一文件组下的多个文件,如果某个文件没有可用空 ...
- tailf 跟踪日志文件
1.命令功能 tailf 跟踪日志文件增长,作用跟tail –f相同.tailf将输出文件的最后10行,然后等待文件增长. 2.语法格式 tailf option file 参数说明 参数 参数说 ...
- SQLSERVER手动增长日志文件和数据文件
原文:SQLSERVER手动增长日志文件和数据文件 SQLSERVER手动增长日志文件和数据文件 手动增长日志文件,实际上就是修改日志文件的大小 size 的单位是MB 下面设置日志文件大小是204 ...
- SQL Server无法收缩日志文件 2 因为逻辑日志文件的总数不能少于 2问题
SQL Server无法收缩日志文件 2 因为逻辑日志文件的总数不能少于 2问题 最近服务器执行收缩日志文件大小的job老是报错 我所用的一个批量收缩日志脚本 USE [master] GO /*** ...
随机推荐
- springboot oauth 鉴权之——password、authorization_code鉴权
参考一下两个案例:https://www.cnblogs.com/haoliyou/p/9606018.html https://www.cnblogs.com/haoliyou/p/9606036. ...
- mysql-5.7.25解压版本安装和navicat 12.1版本破解-4.8破解工具
1.配置环境变量 百度网盘下载https://pan.baidu.com/s/1tbOJiOG9l87HbIzsLApX4A 提取码 t657 (mysql-5.7.25大小300M解压后1.6G ...
- 851. spfa求最短路
给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数. 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible. 数据保证不存在负权回路. 输入格式 ...
- configure: error: C compiler cannot create executables报错处理
在测试环境安装php的imagick扩展在执行./configure生成编译文件时出现报错如下: 通过查看config.log发现有报错,在网上经验教程里发现前面的报错不管,直奔最后的报错即可,发现是 ...
- 使用Xshell进行vi编辑时,按下end、home和Delete不能使用,解决解决办法
使用Xshell连接到Linux进行vi编辑时,进入编辑模式,按下end键,光标无法移到行位,home也不能到行首,其它的Delete键也是不能使用,如何解决? Xshell选项设置如下: 文件→属性 ...
- windows的各种扩展名详解
Windows系统文件按照不同的格式和用途分很多种类,为便于管理和识别,在对文件命名时,是以扩展名加以区分的,即文件名格式为: 主文件名.扩展名.这样就可以根据文件的扩展名,判定文件的种类,从而知道其 ...
- Git学习笔记(二) · 非典型性程序猿
远程库的使用 前面说到的都是git在本地的操作,那么实际协作开发过程中我们肯定是要有一个远程版本库作为项目的核心版本库,也就是投入生产使用的版本.这里我们以 Github为例.Github是一个开放的 ...
- Leetcode 981. Time Based Key-Value Store(二分查找)
题目来源:https://leetcode.com/problems/time-based-key-value-store/description/ 标记难度:Medium 提交次数:1/1 代码效率 ...
- HDU 5894 hannnnah_j’s Biological Test【组合数学】
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5894 题意: 一个圆桌上有$n$个不同的位置,$m$个相同的人安排到这$n$个位置上,要求两人相邻的 ...
- Docker实战之MySQL主从复制
前言 曾几何时,看着高大上的架构和各位前辈高超的炫技,有没有怦然心动,也想一窥究竟?每当面试的时候,拿着单应用的架构,吹着分库分表的牛X,有没有心里慌的一批? 其实很多时候,我们所缺少的只是对高大上的 ...