您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_shmdumpconfig

语法


sp_shmdumpconfig "<action>", <type>, <value>, <max_dumps>, <dump_dir>,
	<dump_file>, <option1>, <option2>, <option3>, <option4>, <option5>

参数

“action”

请求的操作。下列各项之一:

  • add

    添加指定共享内存转储条件。

  • drop

    删除指定共享内存转储条件。

  • update

    更改现有内存转储条件的设置。

  • reset

    重置共享内存转储条件的转储计数。

  • display

    显示当前共享内存转储条件。

  • config

    可以是下列项之一:

    - include errorlog – 确定转储文件中是否包括错误日志文件:

    -0 – 转储文件中不包括错误日志。

    -1 – 转储文件中包括错误日志。

    - merge files – 确定并行转储后是否合并转储文件:

    - 0 – 不合并转储文件。

    - 1 – 合并转储文件。

    <type>、<value>

    有效值包括:

  • error – 生成指定服务器错误号(例如,错误号 1105 或 813)的转储文件。

  • signal – 在出现指定操作系统信号(例如,信号 11 或 10)时生成转储文件。

  • severity – 在错误的严重级大于或等于指定严重级时生成转储文件。

  • module – 生成一定范围内的服务器错误号的转储文件。此范围由 100 的倍数分隔,例如,800 或 1200。

  • defaults

  • timeslice – 在进程收到时间片错误时生成转储文件。

  • panic 在发生服务器应急时生成转储文件。执行共享内存转储后,服务器应急将终止 SAP ASE 服务器。

    _ message – 在出现指定错误日志消息时生成转储文件。请联系 SAP 技术支持部门以获取特定错误消息号。

    d- bcc – 根据请求设置带有缺省和省略的配置。下一次发生问题时,在 isql 提示符发出 dbcc memdump 创建内存转储。

    max_dumps

    为转储条件生成的最大转储数量。每次重启服务器时都会重置转储计数。也可以使用 reset <action> 参数重置转储计数。

    <dump_dir>

    供 SAP ASE 服务器创建转储文件的目录。“sybase”用户必须拥有对此目录的 read 和 write 权限。

    应将 <dump_dir> 设为同一已知位置。确保该目录中的空间足以保存所需数量的转储文件。通过使用双引号("")作为 <dump_dir> 值来执行 update 操作,从而删除 <dump_dir> 设置:

    
    sp_shmdumpconfig 'update', signal, 11, null, null, ""
    

    <dump_file>

    是转储文件名称。如果未提供文件名称,SAP ASE 服务器则会创建绝对唯一的名称。如果提供文件名称,受影响条件的所有文件均使用该名称,而且现有文件会被覆盖。

    <option1>, ..., <option5>

    确定是否在转储文件中包含 SAP ASE 内存的区域(缺省情况下包含过程高速缓存)。下列各项之一:

  • include_page – 包含数据高速缓存中的所有页。

  • omit_page – 省略数据高速缓存中的所有页。

  • default_page – 在包含数据高速缓存页时使用缺省值。

  • include_proc – 包含过程高速缓存中的所有页。

  • omit_proc – 省略过程高速缓存中的所有页。

  • default_proc – 使用过程高速缓存的缺省值。

  • include_unused – 包含未使用页。

  • omit_unused – 省略未使用页。

  • default_unused – 使用未使用页的缺省值。

  • core – 触发此事件后生成核心转储。

  • nocore – 不生成核心转储。

  • csmd – 触发此事件后生成 csmd。

  • nocsmd – 不生成 csmd。

    > 注意

    对于核心转储选项(core、nocore、csmd、nocsmd),缺省行为将产生 csmd(已配置的共享内存转储),而不是核心转储,因此 nocore 选项只用于关闭之前通过 update 函数请求的核心转储。

    这些选项的值将覆盖系统范围缺省设置。指定 default_cache、default_proc 或 default_unused 以从系统范围缺省设置继承合适的值。

    除非具有 SAP 产品支持部门的指导,否则应在所有共享内存转储中包含过程高速缓存。

    halt

    确定 SAP ASE 服务器是否在写入转储文件时停止引擎。下列各项之一:

  • no_halt – 在转储期间不停止引擎。如果不想使用共享内存转储,可使用该选项(例如,因为停机时间不可接受,或者因为触发共享内存转储的事件基于同步问题,而且您需要查看其它引擎在进行哪些工作)。

    采用 no_halt 选项的内存转储可能包含“模糊”图像,并且转储文件很可能包含损坏的锁定表、运行队列等。

  • default_halt

  • halt

    示例

    示例 1

    出现信号 11 时请求进行一次性内存转储:

    
    sp_shmdumpconfig "add", signal, 11, 1, "dump_dir"
    

    示例 2

    出现 605 错误时请求进行内存转储:

    
    sp_shmdumpconfig 'add', error, 605, null, null, null, 
        include_page
    

    在 Windows 中,等效消息为 STATUS_ACCESS_VIOLATION (0xc0000005) 消息:

    
    declare @sig int
    select @sig=hextoint("0xc0000005")
    exec sp_shmdumpconfig 'add', signal, @sig,1,"dump_dir"
    

    示例 3

    在出现 8xx 范围的错误时请求进行内存转储:

    
    sp_shmdumpconfig 'add', module, 800
    

    示例 4

    通过使用双引号("")作为 <dump_file> 的值来执行 update 操作,从而删除之前定义的 dump_file:

    
    sp_shmdumpconfig 'update', signal, 11, null, null, null, ""
    

    示例 5

    在 Windows 异常 0xc0000028 STATUS_BAD_STACK 上配置共享内存转储和核心转储:

    
    declare @sig int
    select @sig=hextoint("0xc0000028")
    exec sp_shmdumpconfig 'add', signal, @sig, 1, dump_dir, dump_file,'csmd','core'
    

    用法

    sp_shmdumpconfig 存储过程使用位置参数。如果正在设置的参数位于不想设置的参数右侧,请为未设置的参数指定空值。