对 DB2® 问题收集信息时,您需要运行的最重要的 DB2 实用程序是 db2support。db2support 实用程序用于自动收集所有可用的 DB2 诊断信息和系统诊断信息。它还有一个可选的交互式“问与答”会话,该会话会提出有关问题的详情。
使用 db2support 实用程序可以避免可能的用户错误,这是因为您不必手动输入“GET DATABASE CONFIGURATION FOR ”或“LIST TABLESPACES SHOW DETAIL”之类的命令。而且,您不需要有关要运行的命令或要收集的文件的指示信息,因此收集数据的速度会比较快。
- 执行 db2support -h 命令以生成完整的命令选项列表。
- 使用相应的 db2support 命令收集数据。
此外,必须先激活数据库,然后再运行 db2support ,否则所收集的信息不完整。 (关于激活,请看我的相关博文)
db2support 实用程序应该由具有 SYSADM 权限的用户(如实例所有者)运行,以便该实用程序可以收集所有必需的信息而不发生错误。如果没有 SYSADM 权限的用户运行 db2support,那么在实用程序运行“QUERY CLIENT”或“LIST ACTIVE DATABASE”之类的命令时,可能会产生 SQL 错误(SQL1092)。
如果使用 db2support 实用程序来帮助将信息传送至 IBM® 支持机构,那么在系统遇到问题时运行 db2support命令。这样工具就会及时地收集信息,例如操作系统性能详细信息。如果在出现问题时无法运行实用程序,您仍可以在问题停止之后发出 db2support 命令,因为会自动生成某些首次出现数据捕获(FODC)诊断文件。
对于调试问题所需的大多数信息的收集而言,以下基本调用通常已经足够(注意,如果使用 -c 选项,那么该实用程序将建立与数据库的连接):
db2support
输出的收集非常方便,并且会存储在压缩的 ZIP 归档 db2support.zip 中,以便可以很轻松地在任何系统上对其进行传送和解压缩。
db2support 捕获的信息类型取决于调用命令的方式、是否启动了数据库管理器以及能否连接至数据库。
db2support 实用程序在所有条件下收集以下信息:
- db2diag.log
- 所有陷阱文件
- 锁定列表文件
- 转储文件
- 各种与系统有关的文件
- 各种系统命令的输出
- db2cli.ini
根据情况,db2support 实用程序还有可能收集以下信息:
- 活动日志文件
- 缓冲池和表空间(SQLSPCS.1 和 SQLSPCS.2)控制文件(使用 -d 选项)
- db2dump 目录的内容
- 扩展系统信息(使用 -s 选项)
- 数据库配置设置(使用 -d 选项)
- 数据库管理器配置设置文件
- 日志文件头文件(使用 -d 选项)
- 恢复历史记录文件(使用 -d 选项)
HTML 报告
db2support.html 将总是包括下列信息:
- 问题记录(PMR)编号(如果指定了 -n)
- 操作系统和级别(如 AIX® 5.1)
- DB2 发行版信息
- 是 32 位还是 64 位环境的指示信息
- DB2 安装路径信息
- db2nodes.cfg 的内容
- CPU 和磁盘数目及内存量
- 实例上的数据库列表
- 注册表信息和环境,包括 PATH 和 LIBPATH
- UNIX® 的当前文件系统和索引节点的磁盘可用空间
- Java™ SDK 级别
- Java JCC 版本
- Java JCC 配置
- 数据库管理器配置
- 数据库恢复历史记录文件列表
- sqllib 目录的 ls -lR 输出(或 Windows® 上的相应项)
- LIST NODE DIRECTORY 命令的结果
- LIST ADMIN NODE DIRECTORY 命令的结果
- LIST DCS DIRECTORY 命令的结果
- LIST DCS APPLICATIONS EXTENDED 命令的结果
- 所有已安装软件的列表
指定
-s 选项时,以下信息将出现在
db2support.html 文件中:
- 详细的磁盘信息(分区布局、类型、LVM 信息等等)
- 详细的网络信息
- 内核统计信息
- 固件版本
- 其他特定于操作系统的命令
如果已经启动了 DB2,那么
db2support.html 文件包含下列附加信息:
- 客户机连接状态
- 数据库和数据库管理器配置(数据库配置需要 -d 选项)
- CLI 配置
- 内存池信息(大小和耗用大小)。如果使用 -d 选项,那么会收集完整数据
- LIST ACTIVE DATABASES 命令的结果
- LIST DCS APPLICATIONS 命令的结果
如果已指定
-c 并且已成功连接至数据库,那么
db2support.html 文件包含以下信息:
- 用户表的数目
- 数据库数据的大概大小
- 数据库快照
- 应用程序快照
- 缓冲池信息
- LIST APPLICATIONS 命令的结果
- LIST COMMAND OPTIONS 命令的结果
- LIST DATABASE DIRECTORY 命令的结果
- LIST INDOUBT TRANSACTIONS 命令的结果
- LIST DATABASE PARTITION GROUPS 命令的结果
- LIST DBPARTITIONNUMS 命令的结果
- LIST ODBC DATA SOURCES 命令的结果
- LIST PACKAGES/TABLES 命令的结果
- LIST TABLESPACE CONTAINERS 命令的结果
- LIST TABLESPACES 命令的结果
- LIST DRDA® IN DOUBT TRANSACTIONS 命令的结果
db2support.zip 文件内容示例
为了获取
db2support.zip 文件的内容示例,已执行以下命令:
db2support . -d sample -c -f -st "select * from staff"
通过将
db2support.zip 文件解压缩,收集了下列文件和目录:
- DB2CONFIG/ - 配置信息(例如数据库、数据库管理器、BP、CLI、Java 开发者套件及其他)
- DB2DUMP/ - 过去三天生成的 db2diag.log 文件内容
- DB2MISC/ - sqllib 目录的列表
- DB2SNAP/ - DB2 命令的输出(例如,db2set、LIST TABLES、LIST INDOUBT TRANSACTIONS、LIST APPLICATIONS 及其他)
- db2supp_opt.zip - 优化器问题的诊断信息
- db2supp_system.zip - 操作系统信息
- db2support.html - 格式化为 HTML 节的诊断信息
- db2support.log - db2support 收集的诊断日志信息
- db2support_options.in - 用来启动 db2support 收集的命令行选项
db2supp_opt.zip 文件包含关于优化器的信息。将此文件解压缩将生成下列目录:
- OPTIMIZER/ - 优化器问题的诊断信息
- OPTIMIZER/optimizer.log - 此文件包含所有活动的日志
- OPTIMIZER/CATALOGS - 下列子目录中所有包含 LOB 的目录:
- FUNCTIONS
- ROUTINES
- SEQUENCES
- TABLES
- VIEWS
- OPTIMIZER/DB2DUMP - db2serv 输出(serv.* 和 serv2.* 输出文件)
db2supp_system.zip 文件包含系统信息。将此文件解压缩将生成下列文件和目录:
- DB2CONFIG/ - db2cli.ini(~/sqllib/cfg 中的文件)
- DB2MISC/ - DB2SYSTM 文件(二进制)及其他
- OSCONFIG/ - 不同的操作系统信息文件(例如,netstat、services、vfs、ulimit、hosts 及其他)
- OSSNAP/ - 操作系统快照(例如,iostat、netstat、uptime、vmstat、ps_elf 及其他)
- SQLDBDIR/ - 重要的缓冲池元文件(~/sqllib/sqldbdir)
- SQLGWDIR/ - DCS 目录(~/sqllib/sqlgwdir 中的文件)
- SQLNODIR/ - 节点目录(~/sqllib/sqlnodir 中的文件)
- SPMLOG/ - ~/sqllib/spmlog 中的文件
- report.log - 所有收集活动的日志
配餐:关于解压缩小技巧
一时手快,直接操作
[db2inst2@cognoswithdb2 db2dump]$ unzip db2support.zip
发现所有的文件都解压在当前目录,一时很混乱,不知道那些事刚解压的
怎么办?如何删除这些刚解压的文件
本来想用find ./ -ctime .......... -exec ......
但是又想到了一种小技巧
我重新解压一边到特定目录
unzip db2support.zip -d unzipsupport/
然后执行
[db2inst2@cognoswithdb2 db2dump]$ rm -rf `cd unzipsupport/;ls`