15.8. コンシューマーの初期化の概要

レプリカ合意を作成したら、コンシューマーを初期化します。この操作中、サプライヤーは既存のデータをコンシューマーにコピーします。
重要
レプリケーションは、コンシューマーを初期化するまで開始しません。

15.8.1. コンシューマーの初期化のタイミング

コンシューマーの初期化には、サプライヤーサーバーからコンシューマーサーバーにデータをコピーする必要があります。サブツリーがコンシューマーに物理的に配置されたら、サプライヤーサーバーはコンシューマーサーバーへの更新操作のリプレイを開始できます。
通常の操作では、コンシューマーは再初期化する必要はありません。ただし、サプライヤーのデータとコンシューマーのデータの間に大きな不一致がある可能性があり、コンシューマーを再初期化します。たとえば、サプライヤーサーバーのデータがバックアップから復元されると、そのサーバーによって提供されたすべてのコンシューマーが再初期化される必要があります。別の例として、サプライヤーがコンシューマーと長期間 (例: 1 週間) にわたって通信できない場合、サプライヤーはコンシューマーが更新できないほど古くなっている可能性があると判断し、再初期化する必要があります。
コンシューマーは、Web コンソールを使用してオンラインで初期化することも、コマンドラインを使用して手動で初期化できます。Web コンソールを使用したオンラインコンシューマーの初期化は、少数のコンシューマーを初期化する効果的な方法です。ただし、各レプリカは順番に初期化されるため、この方法は大量のレプリカを初期化するのに適していません。オンラインコンシューマーの初期化は、コンシューマーがサプライヤーサーバーでのレプリカ合意の設定の一部として初期化される時に使用する方法です。
コマンドラインを使用した手動コンシューマーの初期化は、1 つの LDIF ファイルから多数のコンシューマーを初期化するより効果的な方法です。

15.8.2. 初期タイムアウトの設定

大規模なデータベースの初期化がタイムアウトにより失敗する場合は、以下のいずれかを十分な時間または時間無制限に設定して、操作がタイムアウトする前に Directory Server がデータベース全体を初期化できるようにしてください。
  • cn=config エントリーの nsslapd-idletimeout 設定パラメーターは、サーバー上のすべてのレプリカ合意のタイムアウトを設定します。たとえば、グローバルにタイムアウトを無効にするには、次のコマンドを実行します。
    # dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-idletimeout=0
  • レプリケーションマネージャーの DN の nsIdleTimeout パラメーターは、このレプリケーションマネージャーエントリーを使用するすべての合意のタイムアウトを設定します。たとえば、cn=replication manager,cn=config エントリーのタイムアウトを無効にするには、以下のコマンドを実行します。
    # ldapmodify -D "cn=Directory Manager" -w -h server.example.com -p 389 -x
    dn: cn=replication manager,cn=config
    changetype: modify
    add: nsIdleTimeout
    nsIdleTimeout: 0

15.8.3. コンシューマーの初期化

本セクションでは、コマンドラインと Web コンソールを使用してコンシューマーを初期化する方法を説明します。

15.8.3.1. コマンドラインを使用したコンシューマーの初期化

コンシューマーがオンラインでもオフラインでも、コマンドラインを使用して初期化できます。本セクションでは、両方の手順を説明します。
15.8.3.1.1. コンシューマーオンラインの初期化
レプリカ合意を作成したら、dsconf repl-agmt init コマンドを使用してオンラインでコンシューマーを初期化します。
# dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt \
     init --suffix="suffix" agreement_name
15.8.3.1.2. コンシューマーオフラインの初期化
コンシューマーをオフラインで初期化するには、以下を行います。
  1. サプライヤーで以下を行います。
    1. サプライヤーでインスタンスをシャットダウンします。
      # dsctl instance_name stop
    2. 複製する接尾辞が含まれる userRoot データベースをエクスポートし、レプリケーションの情報を有する /tmp/example.ldif ファイルにエクスポートします。
      # dsctl instance_name db2ldif --replication userRoot /tmp/example.ldif
    3. サプライヤーでインスタンスを起動します。
      # dsctl instance_name start
  2. エクスポートしたファイルをコンシューマーにコピーします。
  3. コンシューマーにデータをインポートします。詳細については、「サーバーがオフライン時のデータのインポート」 を参照してください。

15.8.4. Web コンソールを使用したコンシューマーの初期化

Web コンソールを使用してコンシューマーをオンラインに初期化するには、以下を実行します。
  1. Web コンソールで Directory Server ユーザーインターフェイスを開きます。「Web コンソールを使用した Directory Server へのログイン」を参照してください。
  2. インスタンスを選択します。
  3. Replication メニューを開き、接尾辞を選択します。
  4. Replication Agreements タブで、接尾辞のレプリカ合意の横にある Choose Action メニューを開き、Initialize Agreement を選択します。
    初期化が正常に完了すると、Web コンソールは Last Update Status 列に Error (0) Replica acquired successfully: Incremental update succeeded メッセージを表示します。
    複製するデータ量によっては、初期化に時間がかかる場合があります。