13.3. 既存のデータベースへの新規インデックスの作成

Directory Server でインデックス操作を開始する方法を説明します。Directory Server はデータベースを自動的にインデックスしないため、インデックスを手動で作成する必要があります。
重要
インデックスを再生成する前に検索を続行しますが、誤った結果または一貫性のない結果が返される場合があります。

13.3.1. インスタンスの実行中にインデックスの作成

13.3.1.1. dsconf backend index reindex コマンドを使用したインデックスの作成

インスタンスの実行中にデータベースのインデックスを再作成するには、以下を実行します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend index reindex database_name

13.3.1.2. cn=tasks エントリーを使用したインデックスの作成

Directory Server 設定の cn=tasks,cn=config エントリーは、サーバーがタスクの管理に使用する一時的なエントリー用のコンテナーエントリーです。インデックス操作を開始するには、cn=index,cn=tasks,cn=config エントリーでタスクを作成します。
ldapadd ユーティリティーを使用して、新しいインデックスタスクを追加します。たとえば、userRoot データベースに cn 属性の presence インデックスを作成するタスクを追加するには、以下を実行します。
# ldapadd -D "cn=Directory Manager" -W -p 389 -h server.example.com -x

dn: cn=example_presence_index,cn=index,cn=tasks,cn=config
objectclass: top
objectclass: extensibleObject
cn: example presence index
nsInstance: userRoot
nsIndexAttribute: "cn:pres"
タスクが完了すると、エントリーはディレクトリー設定から削除されます。
cn=index,cn=tasks,cn=config エントリーの詳細は、『Red Hat Directory Server の設定、コマンド、およびファイルリファレンス』のcn=indexセクションを参照してください。

13.3.2. インスタンスのオフライン時におけるインデックスの作成

インデックスエントリーの作成、または既存のインデックスエントリーにインデックスタイプを追加したら、dsconf db2index コマンドを使用します。
  1. インスタンスをシャットダウンします。
    # dsctl instance_name stop
  2. インデックスを再作成します。
    # dsctl instance_name db2index userRoot
    [13/Aug/2019:15:25:37.277426483 +0200] - INFO - ldbm_instance_config_cachememsize_set - force a minimal value 512000
    [13/Aug/2019:15:25:37.289257996 +0200] - INFO - check_and_set_import_cache - pagesize: 4096, available bytes 1704378368, process usage 22212608 
    [13/Aug/2019:15:25:37.291738104 +0200] - INFO - check_and_set_import_cache - Import allocates 665772KB import cache.
    ...
    db2index successful
  3. インスタンスを起動します。
    # dsctl instance_name start