9.7. トランザクションログのチューニング


すべての Directory Server インスタンスには、管理するデータベースの更新を記録するトランザクションログが含まれています。変更操作などのディレクトリーデータベース操作が実行されるたびに、サーバーは LDAP 操作の結果として呼び出されるすべてのデータベース操作に対して単一のデータベーストランザクションを作成します。これには、エントリーを含むデータベースファイル内のエントリーレコードの更新と、すべての属性インデックスの更新の両方が含まれます。すべての操作に成功すると、サーバーはトランザクションをコミットし、トランザクションログに操作を書き込み、トランザクション全体がディスクに書き込まれたことを確認します。操作のいずれかが失敗すると、サーバーはトランザクションをロールバックし、すべての操作は破棄されます。この all-or-nothing アプローチにより、更新操作が atomic であることが保証されます。操作全体が永続的かつ変更不可能で成功するか、失敗します。

Directory Server は定期的に、トランザクションログの内容を実際のデータベースインデックスファイルにフラッシュし、トランザクションログのトリミングが必要かどうかを確認します。

サーバーで停電などの障害が発生し、異常にシャットダウンした場合でも、最近のディレクトリー変更に関する情報はトランザクションログに保存されます。サーバーを再起動すると、サーバーはエラー状態を自動的に検出し、データベーストランザクションログを使用してデータベースを復元します。

データベーストランザクションロギング、データベースのフラッシュ、トリミング、およびデータベースリカバリーは介入を必要としない自動プロセスですが、データベーストランザクションロギング属性の一部を調整してパフォーマンスを最適化することを推奨します。

9.7.1. コマンドラインを使用したデータベースチェックポイント間隔の変更

Directory Server は定期的に、トランザクションログに記録されたトランザクションをデータベースファイルに書き込み、データベーストランザクションログにチェックポイントエントリーを記録します。チェックポイントエントリーは、データベースにすでに書き込まれた変更を示すことにより、トランザクションログからの復元を開始する場所を示し、復元プロセスを高速化します。

デフォルトでは、Directory Server は 60 秒ごとにデータベーストランザクションログにチェックポイントエントリーを送信します。チェックポイントの間隔を長くすると、ディレクトリーの書き込み操作のパフォーマンスが向上する可能性があります。ただし、異常シャットダウン後にディレクトリーデータベースを回復するのに必要な時間が長くなり、データベーストランザクションログファイルが大きいため、より多くのディスク領域が必要になる可能性もあります。

手順

  • たとえば、チェックポイント間隔を 120 秒に変更します。

    # dsconf <instance_name> backend config set --checkpoint-interval=120
    Copy to Clipboard Toggle word wrap

9.7.2. Web コンソールを使用したデータベースチェックポイント間隔の変更

Directory Server は定期的に、トランザクションログに記録されたトランザクションをデータベースファイルに書き込み、データベーストランザクションログにチェックポイントエントリーを記録します。チェックポイントエントリーは、データベースにすでに書き込まれた変更を示すことにより、トランザクションログからの復元を開始する場所を示し、復元プロセスを高速化します。

デフォルトでは、Directory Server は 60 秒ごとにデータベーストランザクションログにチェックポイントエントリーを送信します。チェックポイントの間隔を長くすると、ディレクトリーの書き込み操作のパフォーマンスが向上する可能性があります。ただし、異常シャットダウン後にディレクトリーデータベースを回復するのに必要な時間が長くなり、データベーストランザクションログファイルが大きいため、より多くのディスク領域が必要になる可能性もあります。

前提条件

  • Web コンソールでインスタンスにログインしている。

手順

  1. Database Global Database Configuration に移動します。
  2. Show Advanced Settings をクリックします。
  3. Database Checkpoint Interval フィールドの値を更新します。
  4. Save Configuration をクリックします。

9.7.3. 永続的なトランザクションの無効化

永続的なトランザクションログとは、トランザクション内の一連のデータベース操作で構成される各 LDAP 更新操作が物理的にディスクに書き込まれることを意味します。各 LDAP 操作は複数のデータベース更新で構成できますが、各 LDAP 操作は単一のデータベーストランザクションとして処理されます。各 LDAP 操作はアトミックおよび永続的です。

警告

永続トランザクションをオフにすると、Directory Server の書き込みパフォーマンスが向上する可能性がありますが、データ損失のリスクがあります。

永続トランザクションログを無効にすると、Directory Server はすべてのディレクトリーデータベース操作をデータベーストランザクションログファイルに書き込みますが、物理的にすぐにディスクに書き込まれない場合があります。ディレクトリーの変更が論理データベースのトランザクションログファイルに書き込まれ、システムのクラッシュ時にディスクには物理的に書き込まれなかった場合、変更を復元することはできません。永続トランザクションが無効の場合、復元されたデータベースは一貫性がありますが、システムクラッシュの直前に完了した LDAP 書き込み操作の結果は反映されません。

Directory Server が実行中の場合は、nsslapd-db-durable-transaction パラメーターを変更できないことに注意してください。

手順

  1. インスタンスを停止します。

    # dsctl <instance_name> stop
    Copy to Clipboard Toggle word wrap
  2. /etc/dirsrv/slapd-<instance_name>/dse.ldif ファイルを編集し、cn=config,cn=ldbm database,cn=plugins,cn=config エントリーの nsslapd-db-durable-transaction パラメーターを off に設定します。

    dn: cn=config,cn=ldbm database,cn=plugins,cn=config
    ...
    nsslapd-db-durable-transaction: off
    ...
    Copy to Clipboard Toggle word wrap
  3. インスタンスを起動します。

    # dsctl <instance_name> start
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat