DB2 V9.7 for Linux, UNIX, and Windows

diagpath -“诊断数据目录路径”配置参数

此参数允许您指定 DB2 诊断信息的标准主路径。

配置类型
数据库管理器
适用于
  • 带有本地客户机和远程客户机的数据库服务器
  • 客户机
  • 带有本地客户机的数据库服务器
  • 带有本地客户机和远程客户机的分区数据库服务器
参数类型
可联机配置
传播类
立即
缺省值 [范围]
Null [任何有效路径名称,'"$h"''"$h/trailing-dir"''"pathname $h"''"pathname $h/trailing-dir"''"$n"''"$n/trailing-dir"''"pathname $n"''"pathname $n/trailing-dir"''"$h$n"''"$h$n/trailing-dir"''"pathname $h$n"''"pathname $h$n/trailing-dir"']
符号
pathname
要使用的目录路径,而不是缺省诊断数据目录
$h
解析为 HOST_hostname
$n
解析为 NODEnumber
/trailing-dir
单个目录,或者是跟在 $h$n 后面的目录和子目录
下列值在 DB2® V9.7 FP2 及更高版本的修订包中可用:
  • '"$h"'
  • '"$h/trailing-dir"'
  • '"pathname $h"'
  • '"pathname $h/trailing-dir"'
  • '"$n"'
  • '"$n/trailing-dir"'
  • '"pathname $n"'
  • '"pathname $n/trailing-dir"'
  • '"$h$n"'
  • '"$h$n/trailing-dir"'
  • '"pathname $h$n"'
  • '"pathname $h$n/trailing-dir"'

根据您使用的平台不同,主诊断数据目录路径中可包含转储文件、陷阱文件、错误日志、通知文件、警报日志文件和“首次出现数据收集”(FODC) 程序包。

如果此参数为 Null,那么诊断信息将写入下列其中一个目录或文件夹中的文件:
  • 在 Windows 环境中:
    • 用户数据文件(例如,实例目录下的文件)的缺省位置因为 Windows 系列操作系统的版本不同而有所不同。使用 DB2SET DB2INSTPROF 命令来获取实例目录的位置。该文件位于 DB2INSTPROF 注册表变量指定的目录的 instance 子目录中。
  • 在 Linux 和 UNIX 环境中:信息将写入 INSTHOME/sqllib/db2dump,其中 INSTHOME 是实例的主目录。
要分割诊断数据目录路径以按物理主机收集诊断信息,请将此参数设置为下列其中一个值:
  • 分割缺省诊断数据目录路径:
    db2 update dbm cfg using diagpath '"$h"'
    此命令将在缺省诊断数据目录下使用主机名创建一个子目录,如下所示:
    Default_diagpath/HOST_hostname
  • 使用结尾目录来分割缺省诊断数据目录路径:
    db2 update dbm cfg using diagpath '"$h/trailing-dir"'
    此命令将在缺省诊断数据目录下使用主机名和结尾目录创建一个子目录,如下所示:
    Default_diagpath/HOST_hostname/trailing-dir
  • 分割您自己指定的诊断数据目录路径(pathname$h 之间有个空格):
    db2 update dbm cfg using diagpath '"pathname $h"'
    此命令将在您自己指定的诊断数据目录下使用主机名创建一个子目录,如下所示:
    pathname/HOST_hostname
  • 使用结尾目录分割您自己指定的诊断数据目录路径(pathname$h 之间有个空格):
    db2 update dbm cfg using diagpath '"pathname $h/trailing-dir"'
    此命令将在您自己指定的诊断数据目录下使用主机名和结尾目录创建一个子目录,如下所示:
    pathname/HOST_hostname/trailing-dir
要分割诊断数据目录路径以按物理主机的数据库分区收集诊断信息,请将此参数设置为下列其中一个值:
  • 分割缺省诊断数据目录路径:
    db2 update dbm cfg using diagpath '"$n"'
    此命令将在缺省诊断数据目录下使用分区号为每个分区创建一个子目录,如下所示:
    Default_diagpath/NODEnumber
  • 使用结尾目录来分割缺省诊断数据目录路径:
    db2 update dbm cfg using diagpath '"$n/trailing-dir"'
    此命令将在缺省诊断数据目录下使用分区号和结尾目录为每个分区创建一个子目录,如下所示:
    Default_diagpath/NODEnumber/trailing-dir
  • 分割您自己指定的诊断数据目录路径(pathname$n 之间有个空格):
    db2 update dbm cfg using diagpath '"pathname $n"'
    此命令将在您自己指定的诊断数据目录下使用分区号为每个分区创建一个子目录,如下所示:
    pathname/NODEnumber
  • 使用结尾目录分割您自己指定的诊断数据目录路径(pathname$n 之间有个空格):
    db2 update dbm cfg using diagpath '"pathname $n/trailing-dir"'
    此命令将在您自己指定的诊断数据目录下使用分区号和结尾目录为每个分区创建一个子目录,如下所示:
    pathname/NODEnumber/trailing-dir
要分割诊断数据目录路径以按物理主机和按物理主机的数据库分区收集诊断信息,请将此参数设置为下列其中一个值:
  • 分割缺省诊断数据目录路径:
    db2 update dbm cfg using diagpath '"$h$n"'
    此命令将在缺省诊断数据目录下使用主机名和分区号为主机中的每个逻辑分区创建一个子目录,如下所示:
    Default_diagpath/HOST_hostname/NODEnumber
  • 使用结尾目录来分割缺省诊断数据目录路径:
    db2 update dbm cfg using diagpath '"$h$n/trailing-dir"'
    此命令将在缺省诊断数据目录下使用主机名、分区号和结尾目录为主机中的每个逻辑分区创建一个子目录,如下所示:
    Default_diagpath/HOST_hostname/NODEnumber/trailing-dir
  • 分割您自己指定的诊断数据目录路径(pathname$h$n 之间有个空格):
    db2 update dbm cfg using diagpath '"pathname $h$n"'
    此命令将在您自己指定的诊断数据目录下使用主机名和分区号为主机中的每个逻辑分区创建一个子目录,如下所示:
    pathname/HOST_hostname/NODEnumber
    例如,名为 boson 的 AIX® 主机有 3 个数据库分区,每个数据库分区的节点号分别为 0、1 和 2。该目录的列表输出示例类似如下内容:
    usr1@boson /home/user1/db2dump->ls -R *
    HOST_boson:
    
    HOST_boson:
    NODE0000 NODE0001 NODE0002
    
    HOST_boson/NODE0000:
    db2diag.log db2eventlog.000 db2resync.log db2sampl_Import.msg events usr1.nfy
    
    HOST_boson/NODE0000/events:
    db2optstats.0.log
    
    HOST_boson/NODE0001:
    db2diag.log db2eventlog.001 db2resync.log usr1.nfy stmmlog
    
    HOST_boson/NODE0001/stmmlog:
    stmm.0.log
    
    HOST_boson/NODE0002:
    db2diag.log db2eventlog.002 db2resync.log usr1.nfy
  • 使用结尾目录分割您自己指定的诊断数据目录路径(pathname$h$n 之间有个空格):
    db2 update dbm cfg using diagpath '"pathname $h$n/trailing-dir"'
    此命令将在您自己指定的诊断数据目录下使用主机名、分区号和结尾目录为主机中的每个逻辑分区创建一个子目录,如下所示:
    pathname/HOST_hostname/NODEnumber/trailing-dir
注:
  • 在某些 Linux 和 UNIX 系统上,为了避免操作系统 Shell 解释 $ 符号,必须在双引号外部再添加一个单引号,如上面的语法中所示。
  • 在 CLP 交互方式下,或者在命令是从输入文件中读取并执行的情况下,不需要添加双引号。
  • $h$n 不区分大小写。
  • 要检查是否成功分割了诊断数据目录路径的设置,请执行以下命令:
    db2 get dbm cfg | grep DIAGPATH
    如果成功分割了诊断数据目录路径,那么将返回带有前导空格的值 $h$n$h$n。例如,返回的输出类似于以下内容:
    Diagnostic data directory path            (DIAGPATH) = /home/usr1/db2dump/ $h$n 
  • diagpath 的动态行为不会扩展到所有进程。
  • DB2 服务器进程 db2sysc 可以检测动态更改,例如,当您对实例附件发出 UPDATE DATABASE MANAGER CONFIGURATION 命令时。
  • 当 DB2 客户机和应用程序进程启动时,它们将使用 diagpath 配置参数设置,且不会检测任何动态更改。
  • 为了提高性能,在非分区数据库环境中,可以对 diagpath 配置参数使用缺省设置。在分区数据库环境中,可以对 diagpath 配置参数使用主机中的本地存储器。
在 V9.5 及更高版本中,全局级 DB2INSTPROF 的缺省值存储在上一节中所显示的新位置。指定运行时数据文件的位置的其他概要文件注册表变量应查询 DB2INSTPROF 的值。其他变量包括:
  • DB2CLIINIPATH
  • DIAGPATH
  • SPM_LOG_PATH
注: 在 DB2 V9.7 FP4 及更高版本的修订包中,可以通过设置备用诊断路径并与 diagpath 参数结合起来使诊断日志记录更具有弹性。当设置了 alt_diagpath 并且由 diagpath 指定的路径变得不可用时,诊断日志记录将继续位于所指定的备用诊断数据目录路径中;当主诊断路径再次变得可用时,将恢复为使用主诊断路径。