如何通过sql server内存转储信息确定错误类型

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

如何通过sql server内存转储信息确定错误类型

[问题描述]

连续碰到多家客户出现SQL Server日志出现大量dump文件的问题,整理了一下分析方法,供大家出现相应问题时进行分析处理。当SQL Server遇到问题或严重错误(严重程度不足以导致整个SQL Server进程崩溃)时,就会发生内存转储。

[操作步骤]

可以通过下面的脚本来检查SQL Server是否发生过内存转储。

SELECT [filename], creation_time, size_in_bytes/1048576.0 AS [Size (MB)]

FROM sys.dm_server_memory_dumps WITH (NOLOCK)

ORDER BY creation_time DESC OPTION (RECOMPILE);

或者在SQL Server的(%Program Files\Microsoft SQL Server\MSSQL1*.MSSQLSERVER\MSSQL\LOG)文件夹下有.mdmp后缀的文件.

在出现这种情况时,可以打开.txt后缀的文件,可以看到类似下面的信息

通过major和minor的值,说明错误号为5242,通过下面SQL,获取实际的错误类型。

select * from sys.sysmessages where error=5254 and msglangid=2052

根据上面的信息,说明某个库出现了损坏,此时,就需要通过dbcc checkdb来检查数据库,明确哪些表可能出现问题,然后进行相应的修复(注:并非所有的表都可以通过命令修复)。

提示:

对于数据库服务器,需要注意下面几个内容

1:不要直接关机

2:如果会有突发停电的风险,购买UPS电源

3:不要直接通过任务管理器kill SQL Server的服务进程

4:定期检查磁盘是否正常

备注:对应帖子:https://vip.kingdee.com/article/197651428347952640


如何通过sql server内存转储信息确定错误类型

[问题描述]连续碰到多家客户出现SQL Server日志出现大量dump文件的问题,整理了一下分析方法,供大家出现相应问题时进行分析处理。当SQL Se...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息