レプリケーション機能の同期実行方法と同期処理を説明します。
レプリケーションサービスは、3種類の方法で同期を実行できます。
以下に、同期の実行方法を説明します。
スケジュールによる実行
スケジュール機能(自動ジョブサービス)を利用して、自動的に同期を実行できます。
この場合、自動ジョブサービスを事前に起動しておいてください。
スケジュール機能の詳細は、"2.2.4 スケジュール実行"を参照してください。
レプリケーションマネージャによる実行
レプリケーションマネージャでレプリケーショングループを選択し、[ツール]メニューから実行方法を選択、またはマウスを右クリックしたポップアップメニューから[同期の実行]を選択する方法があります。
同期の実行には以下の3種類があります。
定義情報に従う
マスタグループ定義に設定した同期方式と処理モードに従って、同期が実行されます。
創成
一括同期で、処理モードは「創成」で同期が実行されます。
置換
一括同期で、処理モードが「置換」で同期が実行されます。
レプリケーションマネージャによる同期の実行方法は、"6.1.3 レプリケーションマネージャの画面操作"を参照してください。
コマンドによる実行
Windowsのコマンドプロンプト画面からrpsyncコマンドを使用して実行できます。
rpsyncコマンドの記述形式は、"7.2 同期実行コマンド"を参照してください。
同期の実行結果は、以下の方法で確認できます。
レプリケーションマネージャ
詳細な確認方法は、"6.1.3 レプリケーションマネージャの画面操作"の"リストビューウィンドウ"を参照してください。
詳細メッセージ情報ファイル
詳細な確認方法は、"F.5 監査ログ情報の出力"を参照してください。
アプリケーションログに通知されるメッセージで確認できます。
なお、正常終了および警告の通知は、レプリケーションの動作環境設定に依存します。
正常終了および警告を通知する設定は、"2.5.1 レプリケーションサービスの動作環境設定"を参照してください。
レプリケーションサービスは、同期対象のデータファイルの各項目に対して反映元で抽出条件を設定し、すべての抽出条件に一致したレコードのみを同期の対象とします。
図2.10 抽出条件の概要
マスタおよびレプリカの項目に指定できる条件は1つです。各項目に指定した条件は、ANDとして処理されます。
条件 | 説明 |
---|---|
比較演算子 | 指定した値を比較演算子に従って比較します。 |
範囲比較 | 指定した値の範囲を比較します。 |
値の集合比較 | 比較演算子"="の値を値1、値2、値3と設定して、個々の値を"OR"で比較します。 |
NULL値比較 | NULL値であるかどうかを比較します。 |
日時型の項目には、抽出条件を設定できません。
削除データとNULL値の扱い
同期方式に「差分方式」を設定するマスタグループ定義およびレプリカグループ定義の作成時に[削除データとNULL値を同等に扱う]を選択した場合、反映元のデータファイルでデータが削除されると、反映先のデータファイルではデータは削除されずNULL値に更新されます。
削除とNULL値を同等に扱うと、項目構成の異なるデータファイルの間で同期を行う場合、反映元のデータを削除しても反映先ではレコードは削除されず、同期対象の項目だけがNULL値に更新されます。
同期方式を「差分方式」で設定したグループで、一括同期の処理モードを「置換」で実行し、削除とNULL値を同等に扱っている場合、同期対象外の項目データを削除せずに残すことができます。
以下に、削除とNULL値を同等に扱う場合の動作を説明します。
反映元の動作
データファイル読み出し時
主キー以外の同期対象の項目すべてがNULL値ならば、削除レコードとして扱います。
主キー以外の同期対象の項目に1つでもNULL値以外の値が含まれている場合、読み込んだデータを反映先へ送信します。
更新情報ファイルへの登録時
図2.11 反映元の動作
反映先の動作
図2.12 反映先の動作
レプリケーショングループに設定する同期方式と処理モードによって、マスタとレプリカの両方のデータファイルに主キーが必要です。
同期方式 | 処理モード | 主キーの設定 |
---|---|---|
一括方式 | 創成 | 不要 |
追加 | 必要 | |
差分方式 | ― | 必要 |
同期実行時の留意事項
相手サーバのサービスが開始されていない場合の動作
連携する相手サーバのPowerReplicationまたはASP レプリケーションサービスのサービスが開始されていない場合、同期の実行がエラーとなります。差分同期の場合、同期処理で反映しようとした更新情報は保持されます。
相手サーバのサービスが停止した状態でも、自サーバの利用者プログラムは実行でき、利用者プログラムからの更新による更新情報は、蓄積されていきます。
差分同期が成功しない限り更新情報は削除されないため、更新情報ファイルの空き容量が枯渇して、データベース間で整合性が保てない状態となる場合があります。
相手サーバのサービスが開始されると、差分同期を実行することによって蓄積された更新情報を反映できます。
複数サーバと連携して同期を行った場合の動作
1つのマスタが複数のレプリカと関連づけられている場合、マスタグループまたはレプリカグループのどちらを選択して同期を実行するかで動作が異なります。
マスタグループを選択して同期を実行した場合
関連づけたすべてのレプリカグループと同期処理を行います。
レプリカグループを選択して同期を実行した場合
関連づけたマスタグループと同期処理を行います。他のレプリカグループは同期処理が実行されません。
また、マスタグループまたはレプリカグループを作成したサーバが停止した場合、またはサービスが停止した場合、同期の実行は以下のように動作します。
マスタグループを作成したサーバが停止、またはサービスを停止した場合
関連づけたレプリカグループを選択して同期を実行すると、エラーとなります。
レプリカグループを作成したサーバが停止、またはサービスを停止した場合、
関連づけたマスタグループを選択して同期を実行すると、サービスを開始しているサーバのレプリカグループと同期が行われます。
サービスが停止しているレプリカグループとの同期はエラーとなります。