db2dart - 数据库分析和报告工具命令
检查数据库的体系结构正确性并报告任何迂到的错误。
db2dart 命令生成的报告使用与该命令所分析的数据库相同的代码页进行编码。 同样,使用与正在分析的数据库相同的代码页来解释指定为 db2dart 命令的一部分的参数值。 db2dart 报告文件和输入值中的字符串在数据库代码页中进行编码。
db2dart 命令不执行代码页转换。
调用 db2dart 命令时,只能指定一个操作。 操作可以支持不同数量的选项。
授权
您必须具有 SYSADM 权限才能使用 db2dart 命令。
需要的连接
无。 db2dart 必须在没有用户连接到数据库的情况下运行。
命令语法
命令参数
- Inspection actions
- /DB
- 检查整个数据库。 这是缺省选项。
- /T
- 检查一个或多个表。 需要两个输入: 表空间标识,表对象标识,表对象标识列表或表名称。
- /TSF
- 仅检查存储器组和表空间文件以及容器。
- /TSC
- 检查一个或多个表空间的表空间构造,但不检查表。 需要一个输入: 表空间标识或表空间标识列表。
- /TS
- 检查一个或多个表空间及其表。 需要一个输入: 表空间标识或表空间标识列表。
- /ATSC
- 检查所有表空间的构造,但不检查它们的表。
- Data formatting actions
- /DC
- 转储已格式化的 按列组织的 表数据。 需要五个输入值: 表对象标识或表名,表空间标识,起始页码,页数和详细选项。
- /DD
- 转储格式化表数据。 如果存在,那么还会显示内联 LOB 数据。 需要五个输入值: 表对象标识或表名,表空间标识,起始页码,页数和详细选项。
- /DI
- 转储格式化索引数据。 需要五个输入值: 表对象标识或表名,表空间标识,起始页码,页数和详细选项。
- 对于分区表的非分区索引, /DI 操作使用 SYSCAT.INDEXES 作为 /OI 和 /TSI 选项的前两个输入。 操作不支持表名 (/TN) 选项。
- 对于分区表的分区索引, /DI 操作使用 SYSCAT.DATAPARTITIONS。 操作不支持表名 (/TN) 选项。
- /DM
- 转储格式化块映射数据。 需要五个输入值: 表对象标识或表名,表空间标识,起始页码,页数和详细选项。 数据显示在重组以回收多维集群 (MDC) 或插入时间集群 (ITC) 表块 (这些表块为空) 之后,是否已回收块以供表空间使用。
- /DP
- 以十六进制格式转储页面。
- 对于 DMS 表空间中的永久对象,操作 /DP 需要三个输入值,这些输入值由表空间标识,起始页码和页数组成。
- 对于 SMS 表空间中的永久对象,操作 /DP 需要五个输入值,这些输入值由表空间标识,对象标识,起始页码,页数和对象类型组成。
- /DTSF
- 转储格式化表空间和存储器组文件信息。
- /DEMP
- DMS 表的转储格式化扩展数据块映射页面 (EMP) 信息。 需要两个输入值: 表空间标识和表对象标识或表名称。
- /DDEL
- 以定界 ASCII 格式转储格式化表数据。 需要四个输入值: 表对象标识或表名,表空间标识,起始页码和页数。
对于 按列组织的 表, /DDEL 参数接受逻辑行号范围,而不是页的范围。 逻辑行号唯一地标识 按列组织的 表中的行,并且类似于 按行组织的 表中的 RID。 如果第一个逻辑行号和逻辑行数都是 0 ,那么将转储 按列组织 表中的所有行。 如果仅逻辑行数为 0 ,那么将转储从表的第一个逻辑行号到最后一行的所有行。
转储定界 ASCII 文件在数据库代码页中进行编码。 db2dart 命令不执行代码页转换。
/DDEL 参数仅支持以下列数据类型。 如果表包含具有任何其他数据类型的列,那么将跳过该列,并且该列不会包含在定界 ASCII 文件中。- SMALLINT
- FLOAT
- REAL
- INTEGER
- 时间
- DECIMAL
- CHAR ()
- VARCHAR ()
- 日期
- TIMESTAMP
- BIGINT
- /DHWM
- 转储高水位标记信息。 需要一个输入值: 表空间标识。
- /DTNT
- 转储特定租户的格式化目录信息。 您为 tenantname 输入的值必须与 SYSCAT.TENANTS 目录表。 此值区分大小写。
- /DXA
- 以 ASCII 格式转储格式化的 XML 列数据。 需要五个输入值: 表对象标识或表名,表空间标识,起始页码,页数和详细选项。
- /DXH
- 以 HEX 格式转储格式化的 XML 列数据。 需要五个输入值: 表对象标识或表名,表空间标识,起始页码,页数和详细选项。
- /LHWM
- 建议降低高水位标记的方法。 需要两个输入值: 表空间标识和页数 (需要高水位标记)。
- Repair actions
- /ETS
- 在 4 KB 表空间中扩展表限制 (仅 DMS) (如果可能)。 需要一个输入值: 表空间标识。
- /MI
- 将索引标记为无效。 指定此参数时,数据库必须处于脱机状态。 需要两个输入值: 表空间标识和索引对象标识。 对于分区索引,可以从 INDPARTITIONOBJECTID 和 INDPARTITIONTBSPACEID 获取 SYSCAT.INDEXPARTITIONS。
- /RHWM
- 通过空 SMP 扩展数据块减少高水位标记。 指定此参数时,数据库必须处于脱机状态。 需要一个输入值: 表空间标识。注: 必须使用 ALTER TABLESPACE REDUCE 命令来除去空的 SMP 扩展数据块。 如果表空间已启用可回收存储器,那么还可以使用 ALTER TABLESPACE LOWER HIGH WATER MARK 命令来除去空的 SMP 扩展数据块并降低高水位标记。 您可以在数据库处于联机状态时使用 ALTER TABLESPACE 命令。
- Change state actions
- /CHST
- 更改数据库的状态。 指定此参数时,数据库必须处于脱机状态。 需要一个输入值: 数据库备份暂挂状态。 为防止数据丢失并保证可恢复性,必须在重置数据库备份暂挂状态后执行完全数据库备份。
- Help
- /H
- 显示帮助信息。
- Input value options
- /OI object-id
- 指定对象标识。 对于 /T 操作,可以指定最多 64 个对象标识的逗号分隔列表。 如果相应的 /TSI 选项包含多个输入标识,那么仅使用第一个标识。 将跳过重复的标识。 可以为 /T 操作指定逻辑标识。
- /TN table-name
- 指定大写的表名,除非它是定界标识。
- /TSI tablespace-id
- 指定表空间标识。 对于 /TS 或 /TSC 操作,可以指定最多 64 个物理表空间标识的逗号分隔列表。 将跳过重复的标识。
- /ROW sum
- 标识是否应检查长字段描述符, LOB 描述符和控制信息。 您可以仅指定一个选项,也可以添加值以指定多个选项。
- 1
- 检查行中的控制信息。
- 2
- 检查长字段和 LOB 描述符。
- /RPT path
- 报告输出文件的可选路径。
- /RPTN file-name
- 报告输出文件的可选名称。
- /PS number
- 指定要作为开头的页码。 与 /DP 操作一起使用时,可以将
p后缀用于池相对寻址。 指定/PS 0 /NP 0将导致转储指定对象中的所有页面。 - /NP number
- 指定页数。 指定
/PS 0 /NP 0将导致转储指定对象中的所有页面。 - /V option
- 指定是否应实现详细选项。 有效值为:
- Y
- 指定应实现详细选项。
- N
- 指定不应实现详细选项。
- /SCR option
- 指定屏幕输出的类型 (如果有)。 有效值为:
- Y
- 生成正常屏幕输出。
- M
- 生成最小化的屏幕输出。
- N
- 未生成屏幕输出。
- /RPTF option
- 指定报告文件输出的类型 (如果有)。 有效值为:
- Y
- 生成正常报告文件输出。
- E
- 仅向报告文件生成错误信息。
- N
- 未生成报告文件输出。
- /ERR option
- 指定要在 DART.INF中生成的日志类型 (如果有)。 有效值为:
- Y
- 在 DART.INF 文件中生成正常日志。
- N
- 将日志 DART.INF 文件的输出最小化。
- E
- 最小化 DART.INF 文件和屏幕输出。 仅将错误信息发送到报告文件。
- /WHAT DBBP option
- 指定数据库备份暂挂状态。 有效值为:
- OFF
- 关闭状态。
- ON
- 状态。
- /QCK sum
- 指定要执行的快速选项。 您可以指定一个选项或同时添加值以执行多个快速选项。
- 1
- /QCK 1 选项仅适用于 /DB, /T和 /TS 操作。 此选项检查 DAT 对象的页面 0 ,并部分检查索引对象 (不检查 BMP , LOB 和 LF 对象,也不遍历整个 DAT 或 INX 对象)。 这是缺省选项。
- 2
- /QCK 2 选项仅适用于 /DB, /T, /TS, /DD, /DI, /DM, /DEMP, /DDEL, /DXA和 /DXH 操作。 此选项在非分区数据库环境和分区数据库环境的目录分区上跳过系统目录表查找。 此选项对分区数据库环境的非目录分区没有影响。 如果使用表名指定了 /TN 选项,或者使用逻辑标识指定了 /OI 和 /TSI 选项,那么 /QCK 2 选项不适用于前面提到的操作。
- 4
- /QCK 4 选项仅适用于 /T, /TS和 /TSC 操作。 此选项将跳过特殊系统目录表检查或系统目录表空间检查。 对于 /TS和 /TSC 操作, /QCK 4 选项会跳过特殊系统目录表检查。 对于 /T 操作, /QCK 4 选项会跳过对系统目录表空间构造的检查。
- 8
- /QCK 8 选项仅适用于 /T和 /TS 操作。 此选项将跳过对容器的检查。 对于 /T 操作, /QCK 8 选项将跳过对所有容器文件的检查。 对于 /TS 操作, /QCK 8 选项仅检查与指定表空间相关联的容器文件。
- /TYP option
- 指定对象的类型。 有效值为:
- DAT
- 对象类型为 DAT。
- INX
- 对象类型为 INDEX。
- BKM
- 对象类型为 BMP。
- Keystore password options
- 如果密钥库密码未隐藏,那么以下选项对加密数据库有效。
- /KPW password
- 指定打开密钥库时要使用的密码。
- /KPWA fd:file_descriptor | filename:file_name
- 指定密钥库密码自变量。 file_descriptor 参数指定文件描述符,用于识别一个打开并且可读的文件或管道,其中包含所要使用的密码。 file_name 参数指定包含要使用的密码的文件的标准名称。
- /KPWP
- 指定提示用户输入密码。
示例
- Example 1
- 要在标识为 2 的表空间中的对象标识为 4 的非范围分区表上转储 1000 页格式化索引数据,并从第 0 页开始,请使用以下 db2dart 命令:
db2dart IXMLDB /DI /TSI 2 /OI 4 /V Y /PS 0 /NP 1000
- Example 2
- 要在范围分区表上转储格式化块映射数据,请使用以下 db2dart 命令:
db2dart IXMLDB /DM /TSI 2 /OI 8 /V Y /PS 0 /NP 1000其中 8 是 partitionobjectid 的值, 2 是 SYSCAT.DATAPARTITIONS中 tbspaceid 的值。
- 示例 3
- 要转储数据库
testdb的格式化表空间和存储器组文件信息,请使用以下命令:db2dart testdb /DTSF以下是先前命令生成的示例输出:Storage group file (automatic storage) report phase start. Header version: 33 Header flavour: 1 Checksum: 0x5402d18f Number of storage groups: 1 Default storage group ID: 0 Header Last LSN: 0x000000000003D4A4 Storage group ID: 0 Storage group name: IBMSTOGROUP Data Tag: 5 Flavour: 3 Version: 5 State flags: 0x0000000000000000 Last LSN: 0x000000000003D4A4 Initial LSN: 0x0000000000000000 Checksum: 0x1e587275 Number of storage paths: 1 Storage path # 0: /filesystem1 (id = 0, state = 0x0) Storage group file (automatic storage) report phase end. Tablespace file report phase start. Tablespace information for current database: -------------------------------------------- Number of defined tablespaces: 4 High water mark of used pools: 3 Number of disabled tablespaces: 0 Individual tablespace details: ------------------------------- Information for Tablespace ID: 0 ------------------------------------- Tablespace name: SYSCATSPACE Table space flags (HEX): 3102 Table space type: Database Managed Space (DMS), Automatic Storage, Auto-Resize Page size: 4096 Extent size: 4 Prefetch size: 4 Version: 104 Tablespace state: 0 Number of quiescers: 0 Storage Group ID: 0 Source Storage Group ID: -1 Data Tag: 0 Usable pages in tablespace: 25340 Total pages in tablespace: 25344 Initial Size: 1048576 bytes Increment : -4096 bytes Maximum Size: None Last Resize: None Last Resize Failed: No SMP page for first free extent: 4 SMP page for last allocated tablespace extent. 4 SMP extent number of the last initialized SMP extent: 0 High Water Mark: 25164 . . .
- 示例 4
- 要检查标识为 3 , 4 , 5 , 8 , 9 和 11 的表空间,并跳过系统目录表查找和特殊系统目录表检查,请使用以下 db2dart 命令。 仅检查与指定表空间关联的容器。
其中 /QCK 14 选项表示添加快速选项 2, 4和 8。 /QCK 14 选项执行快速选项 2, 4和 8的所有单独操作。db2dart <dbname> /TS /TSI 3,4,5,6,9,11 /QCK 14
- Example 5
- 要以定界 ASCII 格式转储格式化表数据,请使用以下命令:
以下是先前命令生成的示例输出:db2dart inspdb /ddelConnecting to Buffer Pool Services... Table object data formatting start. Please enter Table ID or name, tablespace ID, first page or logical row, num of pages or logical rows (may suffix page number with 'p' for pool relative if working with a pool-relative tablespace): 39,2,0,0 4 of 4 columns in the table will be dumped. Column numbers and datatypes of the columns dumped: 0 INTEGER 1 INTEGER 2 BIGINT 3 BIGINT Default filename for output data file is BLUDB_TS2T39.DEL, Do you wish to change filename used? y/n n Filename used for output data file is BLUDB_TS2T39.DEL. If the file exists, the data will be overwritten. Dumping delimited ASCII data of COL object ... Table object data formatting end.
使用说明
- 如果在调用 db2dart 命令时未指定所有必需的输入值,那么将提示您输入这些值。 对于 /DDEL 操作,不能从命令行指定选项,并且必须在 db2dart提示时输入这些选项。
- 除了操作外,还可以调用 /ROW, /RPT, /RPTN, /SCR, /RPTF, /ERR和 /WHAT DBBP 选项。 任何操作都不需要这些操作。
- /DB, /T 和 /TS 选项检查指定的对象,包括关联的 XML 存储对象。 /DB 选项包括数据库中的所有 XML 存储对象, /T 选项包括与指定表相关联的 XML 存储对象, /TS 选项检查其父对象存在于指定表空间中的所有 XML 存储对象。 此外, /DEMP 选项将转储格式化的 EMP 信息,包括关联 XML 存储对象的 EMP 信息。
- 对单个表空间运行 db2dart 时,将检查该表空间中父表的所有从属对象,而不考虑从属对象所在的表空间。 但是,对于位于指定表空间外部的从属对象,不会捕获扩展数据块映射页面 (EMP) 信息。 对于在指定表空间中找到的从属对象,即使父对象驻留在指定表空间以外的表空间中,也会捕获 EMP 信息。
- 对于分区表, /DD, /DM, /DEMP, /DDEL, /DP, /DXA, /DXH 操作使用 syscat.datapartitions 中的 partitionobjectid 和 tbspaceid 作为特定分区的表对象标识 (/OI) 和表空间标识 (/TSI) 的输入。 这些操作不支持表名选项 (/TN)。 当与全局表空间标识配合使用以检查整个表时, /T 操作支持表名称或全局表对象标识,并且还支持使用来自 syscat.datapartitions 的 partitionobjectid 和 tbspaceid 作为 /OI 和 /TSI 的输入来检查特定分区。
- 通常,在数据库脱机时运行 db2dart 命令。 但是,如果要指定 /DHWM 和 /LHWM 操作,那么不需要脱机数据库。 可以在数据库处于脱机状态的情况下生成报告,但结果的可靠性将根据最近发生的写/更新活动的数量而有所不同 (较少的活动意味着更可靠的结果)。
- db2dart 不会处理日志记录或读取缓冲池页面。 因此,如果在 Db2® 处于恢复暂挂状态或处于活动状态时运行报告,那么可能会生成错误消息。 当发出 "数据库不一致" 消息时,请应用所需的事务日志记录以使数据库一致。 然后,在决定复原数据库之前,请仔细评估错误消息。 如果数据库处于联机状态,请停止数据库或使用 INSPECT 命令。
