1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > sql server服务器怎么配置文件 配置 SSAS 以生成内存转储文件 - SQL Server | Microsoft Docs...

sql server服务器怎么配置文件 配置 SSAS 以生成内存转储文件 - SQL Server | Microsoft Docs...

时间:2019-06-07 20:26:29

相关推荐

sql server服务器怎么配置文件 配置 SSAS 以生成内存转储文件 - SQL Server | Microsoft Docs...

配置 SQL Server Analysis Services 以生成内存转储文件

09/25/

本文内容

本文介绍如何将 SQL Server Analysis Services 配置为自动生成内存转储文件。

原始产品版本: SQL Server

原始 KB 数: 919711

简介

本文介绍如何将 Microsoft SQL Server Analysis Services (SSA 上) 或更高版本配置为在遇到异常时自动生成不同类型的内存转储文件。 本文还概述了如何使用 Sqldumper.exe 实用工具为 SQL Server Analysis Services 进程手动获取内存转储文件。

详细信息

默认情况下,SQL Server Analysis Services 在发生异常时自动生成小型转储文件。 对于默认安装,小型转储文件将写入到默认位置:

Analysis Services 版本

位置

%ProgramFiles%\Microsoft SQL Server\MSAS15.InstanceName\OLAP\log

%ProgramFiles%\Microsoft SQL Server\MSAS14.InstanceName\OLAP\log

%ProgramFiles%\Microsoft SQL Server MSAS13.InstanceName\OLAP\log

%ProgramFiles%\Microsoft SQL Server MSAS12.InstanceName\OLAP\log

%ProgramFiles%\Microsoft SQL Server MSAS11.InstanceName\OLAP\log

备注

InstanceName 是 SQL Server Analysis Services 版本对应的值的占位符。

SQL Server Analysis Services 实例日志位置可以在安装后更改,因此您可以通过查看已安装的 SQL Server Analysis Services 的 msmdsrv.ini 文件来验证日志位置。

若要确定系统的相应值,请确定 ImagePath registery 项的值,它应包含包含 msmdsrv.ini 的配置路径的路径。

Analysis Services 版本

注册表子项

默认实例

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServerOLAPService\ImagePath

命名实例

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSOLAP$InstanceName\ImagePath

小型转储文件将包含以下信息:

所有线程堆栈

堆栈上的指针所引用的第二顺序内存

有关 Process 环境块 (PEB 的信息)

有关线程环境块 (TEB 的信息)

最近卸载的模块的相关信息

线程状态信息

Msmdsrv.ini 文件中的 "异常" 部分控制内存转储文件生成。 默认情况下,该文件位于文件夹中 %ProgramFiles%\Microsoft SQL Server\MSASxx.InstanceName\OLAP\Config 。 MSASxx 是 SQL Server Analysis Service 对应版本的占位符。 当您在记事本中打开该文件时,您会发现异常 XML 标记中的一个部分类似于以下内容:

1

0x0

0x0

0x0

0x0

0xC1000000, 0xC1000001, 0xC1000016, 0xC11D0005, 0xC10F

0

1

您可以通过修改此部分中的设置来控制生成内存转储文件的行为。 您还可以在 SQL Server Management Studio 中修改这些设置。 有关这些设置的详细信息,请访问 SQL Server Management Studio 下载网站: Log 属性。

为 Analysis Services 禁用自动内存转储文件

CreateAndSendCrashReports 设置的值确定是否将生成内存转储文件。 此设置可以是下表中列出的值之一。

说明

0

此值指定 Analysis Services 不生成任何内存转储文件。 此外,"异常" 部分下的其他设置的值将被忽略。

1

此默认值启用内存转储文件。 但是,SQL Server Analysis Services 不会向 Microsoft 发送错误报告。

2

此值指定 SQL Server Analysis Services 生成内存转储文件并向 Microsoft 发送错误报告。

将 CreateAndSendCrashReports 设置设置为1或2时,"异常" 部分中的其他设置可以控制内存转储文件的类型以及要包含在内存转储文件中的信息。

将 SQL Server Analysis Services 配置为自动生成完整转储文件

若要将 SQL Server Analysis Services 配置为在发生异常时自动生成完整转储文件,可以将 SQLDumperFlagsOn 设置设置为0x34。 此外,如果要将 SQL Server Analysis Services 配置为生成包含句柄信息的完整转储文件,则可以将 SQLDumperFlagsOn 设置为0x34,将 MiniDumpFlagsOn 设置为0x4。 例如,Msmdsrv.ini 文件中的 "异常" 部分可能类似于以下内容:

1

0x34

0x0

0x4

0x0

0xC1000000, 0xC1000001, 0xC1000016, 0xC11D0005, 0xC10F

0

1

生成包含手动处理信息的完整转储文件

若要解决诸如服务器停止响应 (挂起) 的问题,您可能需要生成包含手动处理信息的完整转储文件。 若要执行此操作,可以在命令提示符下使用以下参数运行 Sqldumper.exe 实用工具:

Sqldumper.exe PID 0 0x34:0x4 0 PathToDumpFile

备注

PID 表示 SQL Server Analysis Services 进程的进程 ID。 PathToDumpFile 表示转储文件写入到的文件夹。

您必须从安装实例的共享目录运行此命令,或者必须在命令中指定 Sqldumper.exe 文件的完整路径。

Analysis Services 版本

位置

%ProgramFiles%\Microsoft SQL Server\150\Shared

%ProgramFiles%\Microsoft SQL Server\140\Shared

%ProgramFiles%\Microsoft SQL Server\130\Shared

%ProgramFiles%\Microsoft SQL Server\120\Shared

%ProgramFiles%\Microsoft SQL Server\110\Shared

例如,为 SQL Server Analysis Services sqldumper.exe 运行的默认目录是 C:\Program Files\Microsoft SQL Server\1590\Shared 。

更多信息

您可以使用 SQLDumperFlagsOn 设置来指定各种 SQLDumper 标志。 下表列出了可用作标志参数值的位掩码值。

助记符名称

十六进制值

说明

SQLDUMPER_DBGBREAK

0x0001

当分析参数时,此标志将导致 Sqldumper.exe 实用工具在程序开始时运行 DebugBreak API 调用。 通常情况下,Microsoft 产品支持服务专业人员不会使用此标志,因为该标志仅用于调试 Sqldumper.exe 实用工具问题。

注释 此标志将中断 Sqldumper.exe 过程。 此标志不会中断到 Sqldumper.exe 实用程序正在调试的过程中。

SQLDUMPER_NOMINIDUMP

0x0002

使用此标记时,Sqldumper.exe 实用工具不会生成转储文件。 此标志用于测试 Sqldumper.exe 实用程序。

SQLDUMPER_NOWATSON

0x0004

通常,在手动生成转储文件时使用此标志。 此标志将覆盖默认的错误报告行为。 默认情况下,转储文件会提交到注册表中配置的错误报告网站。

SQLDUMPER_REFERENCED_MEMORY

0x0008

此标志将导致 Sqldumper.exe 实用工具在调用 MiniDumpWritedump 函数时为 MiniDumpType 参数设置 MiniDumpWithIndirectlyReferencedMemory 标志。 (指针的内存仅限一个级别的) 基于堆栈的 (参数或本地变量) 将存储在转储文件中。 测试显示,基于线程本地存储 (TLS) 数据(如 Probabilistic 签名方案 (PSS) 和 EC 结构)的特定本地参数似乎不起作用,即使您设置此标志也是如此。

SQLDUMPER_ALL_MEMORY

0x0010

当实用工具调用 MiniDumpWriteDump 函数时,此标志将导致 Sqldumper.exe 实用工具设置 MiniDumpType 的 theMiniDumpWithFullMemory 标志。 此行为与在调试器下使用. dump/mf 命令的行为相同。 但是,还必须将 SQLDUMPER_DUMP_ALL_THREADS 标志设置为 "开",以确保包含所有线程堆栈。

SQLDUMPER_DUMP_ALL_THREADS

0x0020

当您手动运行 Sqldumper.exe 实用程序并指定 ThreadId 参数值0时,此标志不是必需的。 如果 ThreadId 参数值为0,则表示应转储所有线程。 如果指定了一个特定的非零 ThreadId 参数值,但也使用此标志,则所有线程都将写入到转储文件中。 此标志存在的原因是,Sqlservr.exe 进程中的典型行为是在产生 Sqlservr.exe 进程的线程的当前 ThreadId 属性值中传递。 出现此行为时,需要使用标志作为转储所有线程的选项。

SQLDUMPER_MATCH_FILE_NAME

0x0040

可以使用此标志来尝试强制 Sqldumper.exe 实用工具生成与特定命名约定类似的转储文件名。 此特定命名约定可能基于现有文件名。 由于您必须在自己的程序中设置包含现有文件名的特殊内存结构,然后将该指针作为 SqlInfoPtr 参数传递给 Sqldumper.exe 实用工具,因此在手动运行 Sqldumper.exe 实用程序时,此标志将不起作用。

SQLDUMPER_SKIP_DW_REG_READ

0x0080

此标志将导致 Sqldumper.exe 实用工具不将注册表用作 Dw15.exe 程序的执行路径。 Dw15.exe 程序用于将转储文件上载到错误报告网站。

SQLDUMPER_VERBOSE

0x0100

如果您不确定 Sqldumper.exe 实用程序认为正在用作输入的参数,则此标志非常有用。 使用此标志时,Sqldumper.exe 实用工具将显示参数值以及从命令行指定的参数值的数目。

SQLDUMPER_WAIT_AT_EXIT

0x0200

可以使用此标志将调试器附加到 Sqldumper.exe 实用工具。 您可以使用此调试器解决 Sqldumper.exe 实用程序中的任何问题。 当 Sqlservr.exe 或其他程序生成 Sqldumper.exe 实用程序时,尤其会发生这些问题。 当您设置此标志时,Sqldumper.exe 实用工具将在 Sqldumper.exe 程序存在之前和所有其他操作完成之后,在15秒内调用 SleepEx 函数。

SQLDUMPER_FILTERED

0x0800

您可以使用此标志生成已筛选的转储文件。 SQL Server Analysis Services 尚不支持此标志。

您可以使用 MiniDumpFlagsOn 设置来提供小型转储标志。 下表列出了可用的小型转储标志:

选项

说明

MiniDumpNormal

0x00000000

创建使用覆盖的典型小型转储文件。

MiniDumpWithDataSegs

0x00000001

包含所有已加载模块的数据段。 标记加载的模块检索全局变量。

MiniDumpWithFullMemory

0x00000002

创建完整的用户转储文件。 设置标记时,筛选出的转储文件将被禁用。

MiniDumpWithHandleData

0x00000004

包含句柄信息。

MiniDumpFilterMemory

0x00000010

应扫描 Stack 和后备存储内存,以查找对模块列表中模块的指针引用。 用户不应将此标记用于 SQL Server Analysis Services。

MiniDumpWithUnloadedModules

0x00000020

此标志提供有关最近卸载的模块的信息。 只有 Microsoft Windows XP 和 Microsoft Windows Server 支持此标志。 在 Windows Server Service Pack 1 (SP1) 和 Windows XP Service Pack 2 (SP2) 之前,操作系统不维护已卸载模块的信息。

MiniDumpWithIndirectlyReferencedMemory

0x00000040

包含包含由局部变量或其他堆栈内存引用的数据的页面。

MiniDumpFilterModulePaths

0x00000080

如果从模块信息中去除模块路径,请勿使用此标志。

MiniDumpWithProcessThreadData

0x00000100

此标志提供有关 Process 环境块 (PEB) 和线程环境阻止 (TEB) 的信息。

MiniDumpWithPrivateReadWriteMemory

0x00000200

扫描虚拟地址空间,以查找要包括的其他内存类型。

MiniDumpWithoutOptionalData

0x00000400

通过消除不需要的内存区域来减少转储的数据。 执行此操作以满足为转储文件指定的条件。 使用此标志可以避免转储可能包含用户专用数据的内存。 但是,这并不能保证将不会显示任何专用信息。 请勿使用此标志。

MiniDumpWithFullMemoryInfo

0x00000800

包括枚举内存区域描述性信息。

MiniDumpWithThreadInfo

0x00001000

包含线程状态信息。

MiniDumpWithCodeSegs

0x00002000

包含所有已加载模块的代码和代码相关部分。

参考

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。