backendstat
Prev | Directory Server Tools | Next

## Name

backendstat — gather OpenDJ backend debugging information

## Synopsis

`backendstat` {subcommand} {options}

## Description

This utility can be used to debug a backend.

## Options

The backendstat command takes the following options:

`-V | --version`

  Display Directory Server version information.

  Default: false

`-H | --help`

  Display this usage information.

  Default: false

## Subcommands

The backendstat command supports the following subcommands:

### backendstat dump-index

Dump records from an index, decoding keys and values. Depending on index size, this subcommand can generate lots of output.

#### Options

The backendstat dump-index command takes the following options:

`-n | --backendID {backendName}`

  The backend ID of the backend.

`-b | --baseDN {baseDN}`

  The base DN within the backend.

`-i | --indexName {indexName}`

  The name of the index.

`-q | --statsOnly`

  Do not display backend data, just statistics.

  Default: false

`-K | --maxKeyValue {maxKeyValue}`

  Only show records with keys that should be ordered before the provided value using the comparator for the database container.

`-k | --minKeyValue {minKeyValue}`

  Only show records with keys that should be ordered after the provided value using the comparator for the database container.

`-X | --maxHexKeyValue {maxKeyValue}`

  Only show records with keys that should be ordered before the provided value using the comparator for the database container.

`-x | --minHexKeyValue {minKeyValue}`

  Only show records with keys that should be ordered after the provided value using the comparator for the database container.

`-S | --maxDataSize {maxDataSize}`

  Only show records whose data is no larger than the provided value.

  Default: -1

`-s | --minDataSize {minDataSize}`

  Only show records whose data is no smaller than the provided value.

  Default: -1

`-p | --skipDecode`

  Do not try to decode backend data to their appropriate types.

  Default: false

### backendstat dump-raw-db

Dump the raw records in hexadecimal format for a low-level database within the pluggable backend's storage engine. Depending on index size, this subcommand can generate lots of output.

#### Options

The backendstat dump-raw-db command takes the following options:

`-n | --backendID {backendName}`

  The backend ID of the backend.

`-d | --dbName {databaseName}`

  The raw database name.

`-q | --statsOnly`

  Do not display backend data, just statistics.

  Default: false

`-K | --maxKeyValue {maxKeyValue}`

  Only show records with keys that should be ordered before the provided value using the comparator for the database container.

`-k | --minKeyValue {minKeyValue}`

  Only show records with keys that should be ordered after the provided value using the comparator for the database container.

`-X | --maxHexKeyValue {maxKeyValue}`

  Only show records with keys that should be ordered before the provided value using the comparator for the database container.

`-x | --minHexKeyValue {minKeyValue}`

  Only show records with keys that should be ordered after the provided value using the comparator for the database container.

`-S | --maxDataSize {maxDataSize}`

  Only show records whose data is no larger than the provided value.

  Default: -1

`-s | --minDataSize {minDataSize}`

  Only show records whose data is no smaller than the provided value.

  Default: -1

`-l | --singleLine`

  Write hexadecimal data on a single line instead of pretty format.

  Default: false

### backendstat list-backends

List the pluggable backends.

### backendstat list-base-dns

List the base DNs in a backend.

#### Options

The backendstat list-base-dns command takes the following options:

`-n | --backendID {backendName}`

  The backend ID of the backend.

### backendstat list-indexes

List the indexes associated with a pluggable backend. This subcommand may take a long time to complete depending on the size of the backend.

#### Options

The backendstat list-indexes command takes the following options:

`-n | --backendID {backendName}`

  The backend ID of the backend.

`-b | --baseDN {baseDN}`

  The base DN within the backend.

### backendstat list-raw-dbs

List the low-level databases within a pluggable backend's storage engine. This subcommand may take a long time to complete depending on the size of the backend.

#### Options

The backendstat list-raw-dbs command takes the following options:

`-n | --backendID {backendName}`

  The backend ID of the backend.

`-u | --useSIUnits`

  Uses SI Units for printing sizes.

  Default: false

### backendstat show-index-status

Shows the status of indexes for a backend base DN. This subcommand can take a long time to complete, as it reads all indexes for all backends.

When you run the 'list-index-status' command, the result is a table, followed by a "Total", which is the total number of indexes, followed by a list of indexes with "Over index-entry-limit keys" to show the values for which the number of entries exceeded the index entry limit. The table has the following columns.

Index Name

  Name of the index, which takes the form `attr.type` for attribute indexes, and vlv.`name` for VLV indexes. Some indexes are for OpenDJ directory server's internal use.

  Example: `givenName.caseIgnoreSubstringsMatch:6`

Tree Name

  Name of the backend tree, which reflects how OpenDJ directory server organizes the data in the database.

  Example: `/dc=example,dc=com/givenName.caseIgnoreSubstringsMatch:6`

Index Valid

  This is `true` for valid indexes. If this is `false`, the index might be degraded. Verify the index, and rebuild the index if necessary.

Record Count

  Number of indexed keys. Use the backendstat dump-tree command to see how many entry IDs correspond to each key.

Over Index Entry Limit

  Number of keys for which there are too many values to maintain an index, based on the index entry limit. This is recorded as `-` for VLV indexes.

  In other words, with the default index entry limit of 4000, if every user in your large directory has an email address ending in `@example.com`, and a substring index with default substring length of 6 is maintained for `mail`, then OpenDJ directory server does not maintain indexes for keys corresponding to substrings in `@example.com`.

  As a result, an LDAP search with the filter `"(mail=*@example.com)"` becomes an unindexed search even though a substring index exists for the mail attribute. By default OpenDJ directory server does not allow unindexed searches except by privileged users. This is usually exactly the behavior you want in order to prevent client applications from sending searches that return every user in the directory for example. Clients should refine their search filters instead.

95%, 90%, 85%

  Number of keys for which the number of values is approaching the index entry limit, having at least the specified percentage. This is a measure of how full the entry ID lists are.

#### Options

The backendstat show-index-status command takes the following options:

`-n | --backendID {backendName}`

  The backend ID of the backend.

`-b | --baseDN {baseDN}`

  The base DN within the backend.

## Exit Codes

0

  The command completed successfully.

> 0

  An error occurred.

## Examples

The following example displays index information.

    $ bin/backendstat dump-index  -n userRoot -b dc=example,dc=com -i id2childrencount

        Key (len 2): 1#52
        Value (len 8): 1
        Key (len 2): 2#52
        Value (len 8): 500000
        Key (len 9): Total Children Count
        Value (len 8): 500001

        Total Records: 3
        Total / Average Key Size: 13 bytes / 4 bytes
        Total / Average Data Size: 24 bytes / 8 bytes

Prev | Up | Next
backup | Home | base64