kverify utility

kverify [switches] file [file [...]]

This utility will verify the integrity of the indices of the specified tables, stopping if any problems are found. It can also be used to list table properties to stdout.

Six verification levels are supported.

  1. Only the controls are checked for a super-quick verification.
  2. As well as checking the controls, the sequence set of each index is checked to be in sequence and the free chains are followed to account for all blocks in the table. This is a reasonable check that will catch most corruptions.
  3. A more thorough verification which as well as doing a level 2 check, also checks that all the keys in the data area can be looked up in the index. This is the default.
  4. For each rowid referenced in an index sequence set, the row is loaded and check to contain the right key segments. This can be slow on a large table and will catch only suble corruptions.
  5. This is like level 3 but the rowid of the data row must be found in a list of duplicates. This is a more exaustive test than level three but can be extremely slow on big tables with long runs of duplicates. If there are no indices with duplicates allowed then this is identical to level 3.
  6. Check each index block to ensure keys are ordered and there are no duplicates.

Each level includes the checks from the lesser levels. If the level is not explicitly specified with the -l switch, then a level 3 verification is performed. For more infomation about higher levels and the tests performed see the KI_VERIFY function.

The following command line switches are supported:

SwitchPurpose
-aprint table and column properties only
-cprint W user count only (not KDB7)
-dprint table properties only
-eprint extent table only (not KDB7)
-lverification level
-p partnospecify the partition number to use when locking tables in X and U mode
-rOpen in mode R, default is X
-ssilent mode. No messages printed.
-uopen in mode U, the default is X
-vprint version number only

If a partition number is not specified, then a unique partition number is automatically allocated using the normal KCML rules for allocating background partition numbers.