IBM Support

(参考) パージ間隔の複製制御 (PIRC) による、削除済み文書の意図しない複製の防止について

Technote(トラブルシューティング)


問題

この文書では、パージ間隔の複製制御 (PIRC: Purge Interval Replication Control) に関する機能説明、および一般的な質問について記載しています。

Lotus Notes/Domino 8.5.3 に含まれる「8.5.1 Administrator ヘルプ」データベースには、この情報は記載されていません。この情報は、将来のリリースでヘルプが更新されるまでの、補足情報となります。


解決方法

パージ間隔の複製制御 (PIRC) は新しい複製設定であり、削除された可能性のある古い文書が、その削除スタブのパージ後に、複製によってデータベースに戻されるのを防ぐ目的で設計されています。この問題は、多くのお客様環境で発生しており、最も一般的に発生するのは、Domino ディレクトリの古いバージョンが、数カ月後または数年後にオンラインに戻されるケースです。このとき、削除スタブは既にパージされているため、前に削除されたユーザー文書、グループ文書、サーバー文書、および他の設計要素が複製によって環境に戻される可能性があります。PIRC は、これらの文書が複製によって環境に戻されることを防止します。


重要: PIRC 設定は、Lotus Domino サーバーと Lotus Notes クライアントまたは Lotus Domino Administrator が 8.5.3 で実行されている場合にのみ、データベースの詳細プロパティおよび複製設定に表示されます。


PIRC はどのように機能するのか
PIRC は、文書が複製によって戻されるのを 2 つの方法で防止します。1 番目の方法では、レプリケータによって使用される「経過時間」を変更します。複製を開始しているサーバーが 8.5.3 であり PIRC に対応している場合、複製に適した文書を決めるアルゴリズムは PIRC の日付または複製履歴に含まれる経過時間のうち、より後の方を使用するよう変更されました。これで古い文書の複製が防止されます。また、PIRC によってスキップされた文書数を示す Domino ドメインモニター (DDM) イベントが生成されます。

複製によって古い文書が戻されるを防ぐ PIRC の 2 番目の方法は、NoteUpdate を通じたデータベースへの文書の追加を停止します。この方法は、PIRC 非対応のサーバーが古い文書を PIRC 対応サーバーにプッシュするときに使用されます。この場合は、NoteUpdate によって、文書の SequenceTime と PIRC 日付を比較します。文書の方が古い場合は、DDM イベントがログに記録され、その文書は拒否されます。ソースサーバーは文書が拒否されたことを認識していないことに注意してください。このため、ソースサーバーのログでは、すべての文書の複製が成功したように示されます。しかし、PIRC サーバーではサーバー名と拒否された文書がログに記録されるため、システム管理者はデータベースの古いレプリカを追跡して、それらを環境から削除することができます。

PIRC はデータベースのカットオフ日付を使用します。カットオフ日付とは、パージが最後に実行された日付です。パージは、削除スタブをデータベースから取り除くプロセスです。パージはパージ間隔の 1/3 で実行されます。たとえば、パージ間隔が 90 日に設定されている場合、データベースは最大で 120 日前の削除スタブを保持します。PIRC はこの日付を使用して、この日付よりも古い文書がデータベースに複製されるのを防止します。データベースでカットオフ日付が設定されていない場合は (複製履歴が消去されるとこのようなことが発生します)、現在の日付から削除間隔を引いた値が使用されます。


PIRC の有効化
データベースで PIRC を有効にするには、次の 3 つの方法があります。

1) 個々のデータベースでは、[スペースセーバー] タブの [複製オプション] ダイアログボックスより、このプロパティを設定できます。この機能を有効/無効にするチェックボックスが追加されています。

2) 圧縮を通じて PIRC を実装できます。Compact「-PIRC On」および「-PIRC Off」によって、このオプションを切り替えます。この方法を用いると、1 つのコマンドを使用して、複数のデータベースで PIRC を有効または無効にできます。

メモ: この方法は、データベース内の既存の文書には何もしません。たとえば、複製設定の [次の日数内に変更がない文書を削除する] でチェックボックスが有効になっているときの動作とは異なり、古い文書を削除しません。

3) Lotus Domino Administrator のデータベースオプションの設定を通じて PIRC をセットできます。このオプションにより、システム管理者は複数のデータベースで同時に PIRC をセットすることが可能です。


PIRC を有効にする前の考慮事項
PIRC を有効にする前に、複製したいすべての文書、および複製したすべての文書を確認する必要があります。PIRC の設計により、カットオフ日付よりも古い文書はデータベースへの複製をブロックされます。このため、データベースが環境内のすべてのレプリカと複製されるように注意しなければなりません。このことは、いくつかのレプリカが部分的にレプリカされている場合に特に重要です。


PIRC のオーバーライド
PIRC 設定を無効にせずに、一時的にオーバーライドする複製プロセスの NOPIRC スイッチが replication タスクに追加されました。このスイッチが役に立つのは、データベースの 2 つのレプリカ間で複製がいつか必要であるものの、環境内の他のレプリカにはこのデータベースを公開したくない場合です。「-NOPIRC」スイッチは、レプリケータに PIRC をオーバーライドするよう指示します。NOPIRC スイッチを使用するには、サーバーの管理者であるか、サーバーで新規レプリカの作成が許可されている必要があります。これには、「プッシュ」のケースでのサーバーも含まれます。また、NOPIRC スイッチは、経過時間をゼロに設定することにより、複製履歴をオーバーライドします。このように、NOPIRC スイッチを使用すると、環境内の他のレプリカにどちらのデータベースも公開せずに、2 つのデータベース間で完全な複製を行って同期させることができます。


設計/置換に関する考慮事項
テンプレートには長期間にわたって変更されない設計要素が含まれる傾向があるため、データベースで PIRC を有効にしたときは、設計の変更を複製するために特別な注意が必要です。パージ間隔よりも古くなった設計要素は、PIRC によって複製がブロックされます。この問題を回避するために、設計変更日時 (Design Modification TimeDate) がデータベースに追加されました。この時刻/日付は、設計の更新または置換が実行されて実際に 1 つ以上の設計要素が変更されるたびに、データベース内で更新されます。PIRC はこの時刻と PIRC 時刻を比較し、この時刻の方が新しい場合は、データ以外のすべてのノートが複製先データベースに複製されるのを許可します。これにより、データベースで PIRC が有効になっていても、新規設計要素または新たに変更された設計要素を環境全体に複製することができます。


DDM イベントと PIRC
PIRC が PIRC 非対応のサーバーからプッシュされたノートをブロックすると、複製 DDM イベントが作成されます。

"PIRC Warning: Replicator skipped <x> data document(s) in <database name> from <server name>"

PIRC は、検索式によって選ばれた文書をレプリケータがスキップするときにも DDM イベントを生成します。これは、データベースの他のレプリカが古いデータをデータベースにプッシュしようと試みていることを示しています。次のイベントが、DDM の Replication に表示されます。

"PIRC Warning: Replicator skipped <x> data document(s) in <database name> from <server name>"
"PIRC Warning: Replicator skipped <x> non-data document(s) in <database name> from <server name>"

また、複製の DDM イベントは、いずれかのユーザーが「-n」(no pirc) スイッチをともなう複製コマンドを発行するときにもログに記録されます。

"PIRC override for DB <database name>"


PIRC に関連する Fixup の変更
破損した文書が検出され、削除スタブなしで削除された状況を補助するために、fixup に変更が加えられました。これは、このノートの正常なコピーを他のレプリカから複製できるようにする fixup の一般的な手法です。fixup は文書を削除するとともに、次回の複製で全体の検索を実行してこれらの文書が検出されるようにするために、複製履歴も消去します。PIRC が有効になっているデータベースでは、文書の変更日時が PIRC 間隔よりも古い場合、この方法は機能しません。

この問題を解決するために、このようなケースで複製履歴を消去しないように fixup が変更されました。現在、fixup は削除された文書の UNID をデータベース内の特殊オブジェクトに含まれるリストに登録します。そして、次回の定期複製時にこのリストが存在する場合は、これらの文書が複製対象のリストに追加され、複製履歴を消去せずに、削除済みの文書を複製によって復元できます。また、PIRC は文書が PIRC 日付よりも古い場合でも、データベースに複製されるようにします。データベースから文書が削除され、その UNID がこのリストに追加されるときに、DDM イベントが生成されます。UNID は、文書が複製によって戻されるまでの間だけこのリストにとどまるか、PIRC 間隔よりも長い期間このリストにとどまります。いずれの場合も、文書がリストから削除されると、別の DDM イベントが生成されます。

fixup に関連する新規 DDM メッセージ

"Warning: Fixup purged corrupt document UNID (:) from testserver/IBM"

"Warning: Replication restored document UNID (:) from testserver/IBM"

"Warning: Replication did not restore corrupt document, time expired, UNID (:) from testserver/IBM"


PIRC のデバッグ
PIRC の正確な実行内容について詳しい情報が必要な場合は、notes.ini「DEBUG_REPL_PIRC」を設定することができます。この値を 1 に設定すると、PIRC 日付に関する情報、および PIRC がブロックしたノートの要約情報が表示されます。この値を 2 以上に設定すると、PIRC がブロックしている個々のノートに関する情報が表示されます。表示内容は、ノートがデータであるか非データであるか、削除であるかどうかとその UNID です。


PIRC に関する一般的な質問

質問 古いサーバーまたはデータベースの古いコピーがオンラインになったとき、何年も前に削除した文書をデータベースが複製するのを防ぐには、どのような方法がありますか。

回答 環境内の保護したいデータベースのすべてのレプリカで PIRC を有効にします。


質問 8.5.2 サーバーから、データベースの PIRC が有効になっている 8.5.3 サーバーにデータベースをプッシュしています。サーバーのログに、「エラー: 無効な文書」というエラーが表示されます。

回答 複製先サーバーで PIRC を有効にしておくと、PIRC 日付よりも古い文書は拒否され、DDM イベントがログに記録されます。エラーがサーバーに返されますが、これはレプリケータが無視するエラーです。このため、レプリケータはデータベース全体の複製を続行します。このエラーは、notes.ini パラメータ「DEBUG_REPL」が設定されている場合のみ、サーバーコンソールに表示されます。


質問 サーバー上の複数のデータベースで PIRC を有効にしたいと考えています。これを行う最も良い方法は何ですか。

回答 これを行うには 2 つの方法があります。Lotus Domino Administrator で詳細オプションツールを使用してオプションを設定するか、PIRC を有効にしたいデータベースのリストを含むインダイレクトファイルを作成します。そして、「compact -PIRC」コマンドを使用して、インダイレクトファイルを指定します。


質問 サーバー上のどのデータベースが PIRC 対応であるかを簡単に識別する方法はありますか。

回答 サーバーコンソールで「show directory」コマンドを使用します。PIRC 用の列が出力に追加されました。また、「show directory -pirconly」コマンドを使用すると、PIRC 対応のデータベースだけがリストされます。


関連文書

原文:
(英文)「Purge Interval Replication Control (PIRC) prevents unwanted replication of deleted documents」(Technote #1501675)

(英文)「Deleted documents are reappearing after replication」(Technote #1098733)


この文書は、米国 IBM 社の資料を翻訳した参考文書です。日本語環境での検証は行っておりませんのでご注意ください。翻訳元の文書は、関連文書のリンクよりご参照ください。

Document information

More support for: IBM Domino
Replication

Software version: 8.5.3

Operating system(s): AIX, IBM i, Linux, Windows

Reference #: 1578534

Modified date: 18 January 2012