Standard または Advancedのライセンスで利用可能。
非接続環境のレプリカの場合、レプリカ間でメッセージを手動で交換することで同期を実行します。
次の 2 種類のメッセージを交換できます。
- データ変更メッセージ
- 承認メッセージ
データ変更メッセージには、データ変更、およびデータ変更メッセージの受領を承認する承認メッセージが含まれます。 データ送信側がデータ変更メッセージを送信するレプリカ、データ受信側が承認メッセージを送信するレプリカ。 非接続環境での同期のメッセージ交換ワークフローの詳しい図など、詳細については、「非接続環境での同期」をご参照ください。
データ変更メッセージのエクスポート
データ変更には、新しいデータ変更と非承認のデータ変更が含まれます。 新しい変更とは、前回データ変更メッセージがエクスポートされて以降レプリカ バージョンに適用された挿入、更新、削除のことです。 非承認データ変更には、承認を受けていない、以前にエクスポートした変更が含まれます。 次の 2 つのコマンドを使ってデータ変更メッセージをエクスポートできます。
- [データ変更メッセージのエクスポート] - デフォルトで、すべての新しいデータとすべての非承認データ変更をエクスポートできます。 新しいデータ変更と未承認のデータ変更のいずれか、または両方を含めることも、どちらも含めないようにすることもできます。 エクスポート時にレプリカを送信側から受信側に切り替えることもできます。 切り替えた場合、デルタ ファイルにフラグが追加され、インポート時に相対レプリカが受信側から送信側に切り替わります。
- [非承認メッセージの再エクスポート] - 非承認データ変更だけをデルタ ファイルに再エクスポートできます。 デフォルトではすべての非承認データ変更が含まれますが、最新のエクスポートの変更だけを含めることができます。
承認メッセージのエクスポート
承認メッセージとは、相対レプリカからのデータ変更の受領を承認するためのものです。 相対レプリカが承認を受領しない限り、データ変更が再送されます。 承認メッセージの送信とインポートを定期的に行うことで、変更を再送する手間を省くことができます。 [承認メッセージのエクスポート (Export Acknowledgment Message)] ツールを使用して承認メッセージをエクスポートできます。
メッセージのインポート
[メッセージのインポート (Import Message)] ツールでは、データ変更メッセージまたは承認メッセージをインポートできます。 承認メッセージをインポートするとレプリカのメタデータが更新されるため、次のエクスポートに含める変更をレプリカに通知できます。 データ変更メッセージのインポートは相対レプリカのデータ変更に適用され、レプリカのメタデータも更新されます。
注意:
同期プロセスのインポート (データ変更メッセージ) フェーズは、トランザクション内で実行されます。 同期の第 2 フェーズに含まれるリコンサイル操作も、トランザクション内で実行されます。 必要なリソース (UNDO 領域や論理ログ ファイルなど) は、同期する変更の数によって異なります。 インポート フェーズが完了してリコンサイル フェーズがエラーになる場合、レプリカは競合状態と同じ状態となるため、後で手動でリコンサイル操作を完了する必要があります。リコンサイル オプション
データ変更メッセージをインポートする際に、同期バージョンとレプリカ バージョンがリコンサイルされます。 このリコンサイル操作中に競合が発生することがあります。 メッセージをインポートする前に、競合の処理方法を定義するために、リコンサイル ポリシーを選択することができます。
リコンサイル ポリシーは以下のとおりです。
- [手動] - リコンサイルの過程で競合が発生した場合、リコンサイルは停止され、レプリカは競合状態としてマークされます。 これにより、後から手動で、またはカスタム リコンサイル コードを実行して、リコンサイルを実行することができます。 データがリコンサイルされ、変更をレプリカ バージョンにポストすると、レプリカは競合のない状態になります。 レプリカが競合状態の場合、引き続き変更を受信することは可能ですが、変更を送信することはできません。
- [データベースを優先] - 競合がある場合、デルタ ファイルの変更ではなく、変更をインポートするデータベースのリプレゼンテーションが使用されます。 競合は自動的に解決されるため、このポリシーを使用して同期した後に、レプリカが競合状態になることはありません。
- [インポート済みの変更を優先] - 競合がある場合、レプリカのリプレゼンテーションではなく、インポート済みの変更で定義されているリプレゼンテーションが自動的に使用されます。 競合は自動的に解決されるため、このポリシーを使用して同期した後に、レプリカが競合状態になることはありません。
親レプリカを優先するオプションがデフォルトです。 そのため、子レプリカの変更をインポートする場合、デフォルトではインポート済みの変更が優先されます。 親レプリカの変更をインポートする場合、デフォルトではデータベースが優先されます。
リコンサイル オプションは、接続環境でのレプリカの同期で利用できるオプションと似ています。
競合の定義
また、このリコンサイル操作時の競合検出方法として、列レベルと行レベルのどちらかを選択することもできます。