SLAPD-BDB
Section: File Formats (5)
Updated: 2005/11/18
Index
Return to Main Contents
名前
slapd-bdb, slapd-hdb - slapd の Berkeley DB バックエンド
所在
/usr/local/etc/openldap/slapd.conf
説明
slapd(8)
の BDB バックエンドは通常利用する
slapd
データベースとして推奨するバックエンドです。
しかし、正しく設定するには LDBM バックエンドよりも注意が必要です。
これはデータを格納するために Sleepycat Berkely DB (BDB)
パッケージを使います。
データアクセスの性能を上げるために索引とキャッシュを多用します。
hdb は BDB バックエンドの変種であり、階層的なデータベース配置を利用
することによりサブツリー改名をサポートします。その他の点では bdb
と同等に動作し、設定オプションもすべて同じです。
このバックエンドに関するオプションは Berkeley DB の環境設定ファイル
DB_CONFIG
に設定するオプションを完全に充たすことを目指しています。
DB_CONFIG
の設定オプションについては Berkeley DB の文書を参照してください。
バックエンドの設定と
DB_CONFIG
の設定が重複する場合、
DB_CONFIG
の設定が優先します。
設定オプション
ここにあげる
slapd.conf
オプションは BDB と hdb バックエンドデータベースに指定できます。
すなわち、これらのオプションは "database bdb" または "database hdb"
とある行の後で、次の "backend" あるいは "database"
行が現れる前になければなりません。
この他に指定できるデータベースオプションについては
slapd.conf(5)
マニュアルページを参照してください。
- cachesize <integer>
-
BDB または hdb バックエンドデータベースの実体によって管理される
メモリ内エントリキャッシュのエントリ数を指定します。
デフォルトは 1000 エントリです。
- checkpoint <kbyte> <min>
-
データベースのトランザクションログをチェックポイントする頻度を指定します。
チェックポイント操作は、データベースバッファをディスクにフラッシュし、
チェックポイントレコードをログに書き出します。
直前のチェックポイントから <kbyte> のデータが書き込まれたか <min>
分が経過するとチェックポイントが起きます。
2つの引数ともデフォルトは0で、この場合にはチェックポインントが起きません。
引数 <min> がゼロでなければ、チェックポイントを行う内部タスクが
<min> 分毎に起動します。
より詳しくは Berkeley DB reference guide を参照してください。
- dbconfig <Berkeley DB setting>
-
データベースディレクトリのファイル
DB_CONFIG
の設定ディレクティブを指定します。
dbconfig
ディレクティブは、Berleley DB に関して必要な設定をすべて
slapd.conf
ファイルで行うのに便利です。
サーバの起動時に
DB_CONFIG
ファイルが無ければ作成し、
このディレクティブを使った設定を書き込みます。
このディレクティブでは初期値の設定だけが可能であり、他の手段で
カスタマイズした
DB_CONFIG
ファイルを上書き/消去することはありません。
このディレクティブは必要に応じて複数の指定が可能です。
たとえば次のように指定します。
-
dbconfig set_cachesize 0 1048576 0
dbconfig set_lg_bsize 2097152
- dbnosync
-
メモリ内の変更をディスク上の内容とすぐには同期をとらないようにします。
このオプションは、データのセキュリティを犠牲にしてでも性能を上げたい
場合に使います。
より詳しくは Berkeley DB reference guide を参照してください。
- directory <directory>
-
データベースと関連する索引を含んだ BDB
ファイル群を置くディレクトリを指定します。
データベースごとに別々のディレクトリを指定しなければなりません。
デフォルトは
/usr/local/var/openldap-data
です。
- dirtyread
-
更新しているがまだコミットしていないデータの読み込みを許可します。
通常、トランザクションは他の操作がコミットされていないデータへの
アクセスすることを防ぐために分離されています。
このオプションは性能を改善するかもしれませんが、
データが後でアボートされるトランザクションのものである場合には
矛盾する結果を返す可能性もあります。
そのような場合には更新データが廃棄されるので、
後続の検索は異なる結果を返すことになります。
- idlcachesize <integer>
-
メモリ内索引キャッシュのサイズを索引数単位で指定します。
デフォルトは 0 です。
この値を大きくすると、索引のついたエントリの頻繁な検索が高速化します。
hdb データベースでは idlcachesize
を大きくとらないと検索性能が悪くなります。
典型的には
cachesize
(エントリキャッシュのサイズ)の3倍以上にします。
- index {<attrlist>|default} [pres,eq,approx,sub,<special>]
-
与えた属性(あるいは属性のリスト)について管理する索引を指定します。
属性によっては索引のサブセットのみをサポートします。
属性(あるいは属性のリスト)だけが与えられた場合、default
で指定した索引が管理されます。
default の設定は、すべての属性に索引が付くことを意味するものでは無い
ことに注意してください。また性能を最善とするために
eq
索引を常に
objectClass
属性について設定するようにしてください。
いくつかの特殊な索引パラメータを与えることができます。
索引種別
sub
は、
subinitial,
subany,
subfinal
索引に分解できます。
特殊種別
nolang
は、この索引を言語サブタイプで使えないように指定します。
特殊種別
nosubtypes
は、この索引を名前つきサブタイプで使えないようにします。
注記:
slapd.conf(5)
で索引の設定を変更した場合には索引の再構成が必要になります。
索引の再構成については
slapindex(8)
を参照してください。
"cn=config" の更新によりで索引の設定を変更した場合には
バックグラウンドのタスクで自動的に索引の再構成を行います。
- linearindex
-
slapindex
が1度に1つの属性のインデックスを処理するようにします。
デフォルトでは、1エントリ中のインデックスのついた属性をすべて同時に
処理します。このディレクティブを指定した場合、データベース全体にわたる
複数パスを用いてインデックスのついた属性はそれぞれ別個に処理されます。
このオプションは、データベースサイズが dbcache サイズを超えている場合に
slapindex
の性能を改善します。dbcache が十分に大きければ、
このオプションを設定する必要はありませんし、設定すると性能の低下を
まねきます。またデフォルトで
slapadd
を行えば必要なインデックスは
生成されるので、別途
slapindex
を起動する必要はありません。
このオプションを利用した場合、
slapadd
はインデックスを生成しないので、
別途
slapindex
を起動しなければなりません。
- lockdetect {oldest|youngest|fewest|random|default}
-
デッドロックが検出された場合にどのトランザクションアボートするかを指定します。
デフォルトは random です。
- mode <integer>
-
新たに作成するデータベース索引ファイルが持つ
ファイル保護モードを指定します。デフォルトは 0600 です。
- searchstack <depth>
-
検索フィルタの評価で使うスタックの深さを指定します。
検索フィルタは入れ子の AND / OR 節に対応するためにスタック上で評価されます。
スタックは各サーバスレッドごとに割り当てられます。
スタックの深さは、追加のメモリ確保を要求せずにどれだけ複雑な
フィルタを評価できるかを決めます。
フィルタの入れ子の深さが検索スタックの深さより大きい場合には、
その検索操作のための特別のスタックを確保します。
このような領域確保はサーバの性能に悪い影響を与えますが、
大き過ぎるスタックを指定することも巨大なメモリの消費につながります。
検索スタックは各棚で 512K バイトを使います。
デフォルトのスタックの深さは 16 であるので、1スレッドあたり 8MB
を使います。
- shm_key <integer>
-
共有メモリ BDB 環境のキーを指定します。
デフォルトで BDB 環境はメモリマップドファイルを利用します。
このオプションの指定が 0 でなければ、その値を
環境を保持する共有メモリ領域を識別するキーとして利用します。
アクセス制御
bdb
と
hdb
バックエンドは、
slapd.access(5)
に記述のあるアクセス制御の指定にしたがいます。
関連ファイル
- /usr/local/etc/openldap/slapd.conf
-
デフォルトの
slapd
設定ファイル
- DB_CONFIG
-
Berkeley DB 設定ファイル
関連項目
slapd.conf(5),
slapd(8),
slapadd(8),
slapcat(8),
slapindex(8),
Berkeley DB 文書
和訳
稲地 稔 <inachi@kkd.biglobe.ne.jp>
Index
- 名前
-
- 所在
-
- 説明
-
- 設定オプション
-
- アクセス制御
-
- 関連ファイル
-
- 関連項目
-
- 和訳
-