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

09/25/2020

本文内容

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

原始产品版本:   SQL Server

原始 KB 数:   919711

简介

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

详细信息

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

Analysis Services 版本

位置

2019

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

2017

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

2016

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

2014

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

2012

%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, 0xC102003F

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, 0xC102003F

0

1

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

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

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

备注

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

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

Analysis Services 版本

位置

2019

%ProgramFiles%\Microsoft SQL Server\150\Shared

2017

%ProgramFiles%\Microsoft SQL Server\140\Shared

2016

%ProgramFiles%\Microsoft SQL Server\130\Shared

2014

%ProgramFiles%\Microsoft SQL Server\120\Shared

2012

%ProgramFiles%\Microsoft SQL Server\110\Shared

例如,为 SQL Server Analysis Services 2019 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 2003 支持此标志。 在 Windows Server 2003 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

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

参考

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

  1. 服务器dump文件位置,为服务器核心安装配置内存转储文件

    为服务器核心安装配置内存转储文件 10/17/2017 本文内容 适用于: Windows server 2022.Windows server 2019 Windows Server 2016 使用 ...

  2. 同步中心服务器,同步中心以非常慢的速度同步脱机文件 - Windows Server | Microsoft Docs...

    同步中心:某些文件服务器上脱机文件同步缓慢 09/14/2020 本文内容 本文介绍了一个问题,该问题减慢了 Microsoft 同步中心脱机文件夹文件同步操作的进度. 适用于:  Windows S ...

  3. telnet服务器怎么配置文件,配置telnet服务器

    配置telnet服务器 1.确认本机是否已安装telnet-server [root@bogon ~]# rpm -q xinetd telnet-server xinetd-2.3.14-33.el ...

  4. 微软云服务器登录不上,抱歉,登录时遇到问题 - Office 365 | Microsoft Docs

    当用户登录 Office 365.Azure 或 Intune 时,"抱歉,但登录时遇到问题" 2021/4/9 适用于: Cloud Services (Web roles/Wo ...

  5. imap服务器不支持身份验证方法,POP/IMAP 客户端身份验证失败 | Microsoft Docs

    如果 AD FS 声明规则中的 X-MS-Client-Application 设置为 Microsoft.Exchange.PopImap,POP/IMAP 客户端身份验证将失败 2021/4/9 ...

  6. outlook服务器拒绝访问文件夹,无法打开共享日历文件夹 - Outlook | Microsoft Docs

    尝试在 Outlook for Mac 中打开共享日历文件夹时没有权限错误 2021/4/8 适用于: Outlook 2019 for Mac, Outlook 2016 for Mac, Outl ...

  7. PostgreSQL的学习心得和知识总结(二十四)|CentOS环境 配置生成coredump程序崩溃内存转储文件及gdb调试core文件

    目录结构 注:提前言明 本文借鉴了以下博主.书籍或网站的内容,其列表如下: 1.使用GDB分析core dump文件,点击前往 2.详解coredump,点击前往 3.PostgreSQL数据库仓库链 ...

  8. 转储sql文件_在Linux上SQL Server中更改SQL转储文件位置

    转储sql文件 In this article, we will talk about SQL Dump files and the process to change the dump direct ...

  9. sql2005配置文件服务器,SQL server服务器版的安装方法

    SQL server服务器版是我们最常用的SQL server版本之一,下面就教您如何在Windows xp系统上安装SQL server服务器版的方法. 一.找一张SQL server服务器版光盘, ...

最新文章

  1. Linux 配置开机自启 和 修改环境变量
  2. python培训比较好的机构-上海有哪些可以系统学习python的培训机构?
  3. 【Win 10 应用开发】InkToolBar——涂鸦如此简单
  4. wiki-editor语法
  5. Chrome DevTools进阶教程
  6. Linux环境搭建:设置主机名颜色、设置vim颜色
  7. ZK 6中的MVVM初探
  8. NodeJS获取命令行后面的参数
  9. 《ArcGIS Runtime SDK for Android开发笔记》——(10)、ArcGIS Runtime SDK支持的空间数据类型...
  10. android+mms发送流程,mms发送流程代码版droid.docx
  11. Laravel向视图传递变量的两种方法
  12. Java后端避坑——如何使用注解忽略掉JavaBean的属性值
  13. 用Python实现ax²+by的图灵机【形式语言与自动机】
  14. 迷宫问题的三种实现算法
  15. PCAN监测can总线状态设置
  16. Axure RP 7.0学习
  17. Docker 和 Kubernetes了解一下
  18. 读取XML文件时,总报“前言中不允许有内容”
  19. Reds 过期策略 内存淘汰策略 持久化策略
  20. 民营企业的13种死法

热门文章

  1. 高通dsps部分的打印
  2. 中纬ZOOM35全站仪参数和使用说明书
  3. linux initrd
  4. Windows下SQLite自动下载并编译(含dll和exe)
  5. java swing 布局_java swing的四种常用布局
  6. 利用搜索命令寻找外链论坛方法
  7. 李代沫吸毒误导青少年 应脱离娱乐圈
  8. 计算机在职博士好毕业么,计算机在职博士毕业答辩流程
  9. 温湿度监控设备在化妆品仓库中的应用
  10. flash怎么强制gc_浅谈Flash的垃圾回收机制