Dep*_*eld 6 sql-server dump sql-server-2014
我们正在运行 2014 年的 SQL Server。在过去的几年里,服务器每 2-7 天就会无缘无故地生成一次内存转储,锁定大多数进程,并迫使我们重新启动 SQL 服务才能使其运行。
这是错误文件的片段:
Exception Address = 00007FFAD7FCBAA2 Module(combase+000000000003BAA2)
Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION
Access Violation occurred reading address 00000000D8063158
Input Buffer 74 bytes -
Run Code Online (Sandbox Code Playgroud)
还有什么我们应该探索的吗?
或者让 Microsoft 分析.MDMP
文件是我们唯一的选择吗?
需要提及的要点:
我们已将其修补到最新的服务包,以及最新的累积和 GDR 更新。没有改变
Microsoft SQL Server 2014 (SP3-CU4-GDR) (KB5014164) - 12.0.6439.10 (X64)
Run Code Online (Sandbox Code Playgroud)
没有与这些内存转储发生时间相关的特定 SQL 语句/存储过程。
SQL 数据库文件在与操作系统不同的硬盘上运行。它是一个 1TB 驱动器,在任何给定时间都有 250GB 可用空间。
该计算机是 Windows Server 2012 R2 虚拟机
CHKDSK
在操作系统和数据驱动器上未发现任何错误。
DBCC 检查顺利通过。
OPENQUERY
&OPENROWSET
功能使用相当频繁,使用最新的ACE
&ODBC
驱动程序。
如果我查询 sys.dm_server_memory_dumps,这是按日期排列的记录计数:
creation_time QTY
2022-09-13 1
2022-09-09 38
2022-09-07 11
2022-09-06 21
2022-09-04 1
2022-08-25 2
2022-08-24 11
2022-08-23 7
2022-08-22 1
2022-08-21 1
2022-08-17 9
2022-08-09 7
2022-07-29 1
2022-07-27 1
2022-07-22 1
Run Code Online (Sandbox Code Playgroud)
只是对此的后续 - 我们让 Microsoft 分析了内存转储文件,结果发现OPENQUERY
和OPENROWSET
SQL 语句是罪魁祸首。
Microsoft Access Database Engine
驱动程序(2010 和 2016)更新到最新版本--
,由于某些奇怪的原因,这偶尔会导致 Oracle OLEDB 提供程序崩溃/内存转储。/* */
我们用注释替换了所有双连字符 synatx从那时起,我们就看到了令人难以置信的稳定。
归档时间: |
|
查看次数: |
436 次 |
最近记录: |