7.2. データベースタイプを BDB から LMDB に手動で移行する
以下に該当する場合は、インスタンスの Berkeley Database (BDB) バックエンドから Lightning Memory-Mapped Database (LMDB) への手動移行を使用します。
-
dsctlユーティリティーによる移行を実行できない。 - LMDB 設定の属性を手動で設定する必要がある。
前提条件
-
root権限がある。 - Directory Manager のパスワードを持っている。
手順
- サーバーがオフラインのときにコマンドラインを使用してデータをエクスポートする の説明に従って、すべてのデータベースを LDIF ファイルにエクスポートします。
既存のデータベースのサイズを特定し、20% の余裕分を追加して、LMDB データベースの最大サイズを決定します。LMDB から BDB に移行する場合は、このステップをスキップしてください。
既存のデータベースのサイズを特定にします。
# du -hs /var/lib/dirsrv/slapd-instance_name/db/*/ 1.8GB20% の余裕分を追加します。
1.8 GB + 20% = 2.16 GB今後のステップで、最大データベースサイズが必要になります。
インスタンスのデータベースタイプを LMDB に変更し、インスタンスを再起動します。
# dsconf instance_name backend config set --db-lib mdb Successfully updated database configuration # dsctl instance_name restart Instance "instance_name" has been restartedLMDB から BDB に移行する場合は、
--db-libオプションをbdbに設定します。LMDB の最大サイズを、前のステップで計算した値 (2.16 GB) に設定し、インスタンスを再起動します。
# dsconf instance_name backend config set --mdb-max-size 2319282339 Successfully updated database configuration # dsctl instance_name restart Instance "instance_name" has been restartedこのコマンドにより、
nsslapd-mdb-max-size設定パラメーター値が設定されます。注記LMDB から BDB に移行する場合は、このステップをスキップしてください。
- サーバーがオフラインのときにコマンドラインを使用してデータをインポートする の説明に従って、LDIF ファイルからすべてのデータベースをインポートします。
検証
-
nsslapd-backend-implement設定パラメーター値がmdbに設定されていることを確認します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend config get | grep nsslapd-backend-implement
Enter password for cn=Directory Manager on ldap://server.example.com: password
nsslapd-backend-implement: mdb