案例分享:SQL 数据库安装目录下不停的产生 SQLDump****.mdmp故障转储文件原创
金蝶云社区-西瓜不甜苦瓜不苦
西瓜不甜苦瓜不苦
8人赞赏了该文章 5,717次浏览 未经作者许可,禁止转载编辑于2024年04月18日 10:57:36
summary-icon摘要由AI智能服务提供

概述:SQL Server 2014数据库产生大量SQLDump故障转移文件,经查是特定数据库T_BAS_SCHEDULEINFOLOG表存在一致性错误。通过dbcc checktable定位问题后,备份并删除问题表,从正常数据库重建该表,解决故障转移文件生成问题,确保系统稳定。

问题描述

SQL 数据库安装目录下不停的产生 SQLDump****.mdmp故障转移文件,每一分钟都产生一堆文件,如下图所示;

image.png

一直这样下去会导致C盘爆满


分析处理过程

1、数据库版本是2014  64位;

查看上图路径下时间最新的txt日志文件(日志文件原文可下载附件),比如SQLDump****.txt,找到SPID,如下图;

image.png

image.png


2、根据SPID 173,在数据库里面执行语句,

dbcc inputbuffer (173)


可找到正在执行的语句;如下;

(@FInfoLogID varchar(36),@FScheduleTypeId varchar(23),@FINFONOTES nvarchar(109),@FInfoStatus varchar(1),@FLogCreateDate datetime)INSERT INTO T_BAS_SCHEDULEINFOLOG (FInfoLogID, FScheduleTypeId, FINFONOTES, FInfoStatus, FLogCreateDate) VALUES (@FInfoLogID, @FScheduleTypeId, @FINFONOTES, @FInfoStatus, @FLogCreaCteDate)


3、然后,对每一个云星空的数据中心对应的数据库实体,分别执行如下语句,

dbcc checktable(T_BAS_SCHEDULEINFOLOG)


发现AIS20200810141940_data这个数据库有报错,如下图所示;(具体错误见附件txt文件)

image.png

文字版的执行结果的最后一部分,如下;

CHECKTABLE 在表 'T_BAS_SCHEDULEINFOLOG' (对象 ID 1965327603)中发现 0 个分配错误和 321 个一致性错误。

对于由 DBCC CHECKTABLE (AIS20200810141940_data.dbo.T_BAS_SCHEDULEINFOLOG)发现的错误,repair_allow_data_loss 是最低的修复级别。

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。


而在其他数据中心里面执行

dbcc checktable(T_BAS_SCHEDULEINFOLOG)

都是没有报错的。


4、由于这个有报错的数据中心是客户的一个历史备查账套,且T_BAS_SCHEDULEINFOLOG这个表是执行情况日志表;

经客户同意,先把这个数据库实体做完整备份;

然后执行语句

drop table T_BAS_SCHEDULEINFOLOG

把这个表删除;如下图所示;

image.png


5、然后,在其他正常的云星空数据库实体下,找到这个表T_BAS_SCHEDULEINFOLOG,按下图操作;

image.png

把上图操作所显示出的语句复制下,然后给image.png里面去执行这个语句,即可对这个数据库重建了这个表了。

image.png


然后重新对这个库,执行dbcc checktable(T_BAS_SCHEDULEINFOLOG)语句,已经不报错了,见附件截图。

image.png


6、经过一段时间的观察,确认C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Log路径下已经没有每分钟不停地产生故障转储文件了,问题解决。

image.png



扩展知识

1、SQL server数据库安装目录下发现大量 SQLDump****.mdmp故障转移文件

2、常用SQL.清空执行计划日志


附件.rar(16.75KB)

图标赞 8
8人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!