sp_shmdumpconfig "<action>", <type>, <value>, <max_dumps>, <dump_dir>,
<dump_file>, <option1>, <option2>, <option3>, <option4>, <option5>
“action”
请求的操作。下列各项之一:
添加指定共享内存转储条件。
删除指定共享内存转储条件。
更改现有内存转储条件的设置。
重置共享内存转储条件的转储计数。
显示当前共享内存转储条件。
可以是下列项之一:
- include errorlog – 确定转储文件中是否包括错误日志文件:
-0 – 转储文件中不包括错误日志。
-1 – 转储文件中包括错误日志。
- merge files – 确定并行转储后是否合并转储文件:
- 0 – 不合并转储文件。
- 1 – 合并转储文件。
<type>、<value>
有效值包括:
_ 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 内存的区域(缺省情况下包含过程高速缓存)。下列各项之一:
> 注意
对于核心转储选项(core、nocore、csmd、nocsmd),缺省行为将产生 csmd(已配置的共享内存转储),而不是核心转储,因此 nocore 选项只用于关闭之前通过 update 函数请求的核心转储。
这些选项的值将覆盖系统范围缺省设置。指定 default_cache、default_proc 或 default_unused 以从系统范围缺省设置继承合适的值。
除非具有 SAP 产品支持部门的指导,否则应在所有共享内存转储中包含过程高速缓存。
halt
确定 SAP ASE 服务器是否在写入转储文件时停止引擎。下列各项之一:
采用 no_halt 选项的内存转储可能包含“模糊”图像,并且转储文件很可能包含损坏的锁定表、运行队列等。
出现信号 11 时请求进行一次性内存转储:
sp_shmdumpconfig "add", signal, 11, 1, "dump_dir"
出现 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"
在出现 8xx 范围的错误时请求进行内存转储:
sp_shmdumpconfig 'add', module, 800
通过使用双引号("")作为 <dump_file> 的值来执行 update 操作,从而删除之前定义的 dump_file:
sp_shmdumpconfig 'update', signal, 11, null, null, null, ""
在 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 存储过程使用位置参数。如果正在设置的参数位于不想设置的参数右侧,请为未设置的参数指定空值。