2026/07/30

複製と方向

しばらく間が空いてしまいましたが、久しぶりに 複製 に関する話です。今回は複製の方向についてまとめます。

複製(レプリケーション)は、複製関係にある2つの DB 間で同期を行う処理です。『同期なのに方向があるってどういうこと?』と思われるかもしれません。実はこの”方向”を理解すると、複製の仕組みがぐっとわかりやすくなります。


複製の方向

以下の画面は、サーバ上にある DB をローカルに複製した時のレプリケータの画面です。

複製結果欄の”受信”と”送信”が複製の方向になります。方向には、

  • 受信(Pull)
  • 送信(Push)
  • 送受信(Pull-Push)

の3種類があり、一般的な複製では送受信を使用します。ただ、Notes/Domino の仕様としてはそれぞれ独立した動作となっており、片方向だけを実行することも可能だということを覚えておきましょう。方向を表すには”どこから”という情報が必要となります。複製では、”複製を開始した側”を基準に方向が決まります。

初回の複製ではローカルに何も存在しないので、”受信”だけが記録されるという結果になります。

重要なのは、

受信(Pull) 複製相手の更新を受け取るだけ
送信(Push) 自分が持っている更新を複製相手に送るだけ

という点で、Pull-Push はそれぞれを連続して実行するという動作になります。片方向だけでは、”同期”ではなく、更新の片方向伝達になります。

また、サーバ管理における複製に関しては、よく Pull と Push という言葉が使われますので、覚えておきましょう。


方向の指定

複製の方向は『複製のオプション』画面の基本タブ、複製方法で指定します。通常は下図の通り、送受信にチェックが付いてます。

例えば、『複製相手へ文書を送る』チェックを外し、送信だけ停止するとレプリケータの設定欄の矢印は「←」のみになります。

レプリケータは、ローカル - サーバ間の複製を関るする画面に特化しており、左がローカルで右がサーバだと理解すればわかりやすいですね。


削除の反映

通常の複製は、文書の新規作成、更新、削除が対象となりますが、”削除”についてはより詳細な設定が可能となっています。

削除したことを他のレプリカに送信する設定は『複製のオプション』の送信タブにあります。

逆に他のレプリカでの削除を自分自身に反映する(受信)設定は、詳細タブにあります。


複製設定の利用例

今回紹介した設定を利用すると

  • サーバで作成/更新された文書は受け取るが、削除は受け取らない
  • ローカルでの更新(削除を含む)はサーバに反映しない

というような設定が可能です。

サーバ上のメールボックスを管理者が定期的に削除するような運用を行っても、ローカルレプリカ内のメールボックスには、メールが残り続けるという設定が可能になります。

また、掲示板のように期限が来たら消えていくようなアプリでも過去の履歴を保存しておくことができますね。


複製設定の注意

なお、『複製のオプション』を利用した場合に、思い通りに複製されないという問題がよく発生します。その原因を理解するときに重要になるのが、『複製のオプション』は DB 単位で存在するという点です。

例えば、ローカル側で複製を止めた場合、サーバ側でいくら送受信する設定になっていても、ローカルに複製されません。

逆にサーバ側で複製を止めた場合、ローカル側どのように設定しても複製は実現しません。


つまり、『複製のオプション』は各 DB が個別に持つ設定であり、この設定自体が複製されることはありません。

そのため、ローカルとサーバで異なる複製設定にして運用することができ、柔軟な設定ができます。一方で、意図した通りに複製されず、トラブルの原因になることもあります。

複製が期待どおりに動作しない場合は、双方の複製設定を確認することを心掛けましょう。


0 件のコメント:

コメントを投稿