複製の仕組み

サーバー間またはサーバー/クライアント間の複製では、1 つのコンピュータ上のレプリケータが、他方の Domino® サーバーをスケジュールされた時刻に呼び出します。デフォルトでは、レプリケータは起動時にロードされます。サーバー間の複製スケジュールを設定するには、レプリカの更新を可能にするためにサーバーが相互接続できなければなりません。サーバーの接続を可能にするには、サーバーのトポロジーに応じて接続文書を作成します。

ユーザーがデータベースの文書を追加、編集、削除すると、次にサーバー間で複製が行われるまで、各レプリカの内容には多少の違いがあることになります。複製の更新では変更箇所だけがデータベースに転送されるため、ネットワークトラフィックや、サーバー時間、接続コストを最小限に抑えることができます。

デフォルトの場合、スケジュール設定された複製では、複製を開始したサーバーが接続先のサーバーから変更内容を受信し、次に接続先のサーバーに変更内容を送信します。この他に、複製を開始したサーバーと接続先のサーバーがそれぞれ変更内容を受信するようにしたり、複製を開始したサーバーが変更内容の受信や送信だけを行うように設定できます。

サーバーコマンド PullPushReplicate を使用してサーバー間の複製を開始できます。

複製を完全に理解するには、関連リンクの「サーバーのデータベースアクセス権の設定に関するガイドライン」および「サーバー間の複製用にデータベース ACL を設定する」のトピックに記載されている情報を理解しておく必要があります。

  1. 複製は次のいずれかの方法で、サーバーまたはワークステーションから開始されます。
    • 接続文書内の複製スケジュールが実行されます。
    • 即座に複製を開始する複製コマンドがサーバーコンソールから発行されます。サーバーコンソールコマンドには、PullPushReplicate、および load replica があります。
    • プログラム文書での設定。プログラム文書は、サーバーの既存のタスクに作業を送るのではなく、新規タスクを開始します。
    • Notes® クライアントのユーザーインターフェースを操作するエンドユーザーによって、即座に複製を実行する複製コマンドが発行されます。これはサーバーからではなくクライアントのみから実行されます。
    • Notes® クライアントからのスケジュールされた複製。これはクライアントのみから実行されます。

    サーバーは共通の証明書を探すために、また証明書が信頼できるものであることをテストするために、互いを認証します。

  2. レプリケータが、複製するローカルファイルのリストを作成し、リモートサーバーにリストと一致するファイルがあるかどうかを問い合わせます。
    注: 複製を開始するサーバーがリモートサーバーに接続できない場合、またはリモートサーバーを探せない場合、複製は失敗します。
  3. 一致するものを検索できた場合、レプリケータは複製履歴から、最後にレプリカが複製された時刻を確認します。レプリケータは、「Pull」を実行するとき複製先であるローカルデータベースの履歴を、「Push」を実行するとき複製元であるローカルデータベースの履歴を使用します。通常、Push と Pull の両方向用に 1 つずつ、計 2 つのエントリがあります。
    • 複製履歴にエントリがなかったり、アクセス権が変更されていたり、選択複製の設定が変更されている場合、レプリケータは、最後に複製が行われた以降に変更されたものだけではなく、複製元データベース内のすべての文書を検索しなければなりません。
  4. レプリケータが複製元レプリカから、最後の複製以降の変更を検索します。
    • レプリケータは、最後に正常に複製が実行された以降に変更された文書のリストを複製元データベースから作成します。Pull の場合、複製元はリモートサーバー上のデータベースで、Push の場合、複製元はローカルサーバー上のデータベースです。選択複製設定によってリストは規制されます。変更が複製された場合、それ以降のプロセスがそれを処理しないように、検索が開始された時刻が複製履歴に記録されます。
    • 複製先データベースに複製が正常に実行された以降、複製元データベースのデータが変更されていない場合、複製は実行されず、複製履歴も更新されません。
  5. 複製元データベースと複製先データベース間で複製が実行されます。複製履歴が、複製元データベースから複製先データベースへの複製で更新されます。アクセスが十分である場合、複製元データベースと複製先データベースの両方の複製履歴が更新されます。

    複製が失敗した場合、複製履歴は更新されず、次回の複製時に同じデータベースが検索されます。

サーバーコンソールからの複製コマンドとプログラム文書については、関連トピックを参照してください。