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 コマンドを使用します。
- インスタンスをシャットダウンします。
# dsctl instance_name stop
- インデックスを再作成します。
# 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
- インスタンスを起動します。
# dsctl instance_name start