パラレルReplicatについて
パラレルReplicatは、パフォーマンス向上のために並列でトランザクションを適用する別種のReplicatです。
統合Replicatと同様に、トランザクション間の依存関係が考慮されます。データベースの外部で依存性の計算、マッピングの並列処理および適用が実行されるため、負荷が別のサーバーに移されます。このプロセスでトランザクションの整合性が維持されます。さらに、パラレルReplicatは、大きなトランザクションをチャンクに分割してパラレルに適用することで、大きなトランザクションのパラレル適用をサポートします。
パラレルReplicatは、統合モードと非統合モードの2つのモードをサポートします。パラレルReplicatおよび統合パラレルReplicatは、Oracleデータベースのみでサポートされます。ただし、非統合オプションの使用時には、パラレルReplicatはすべてのデータベースをサポートします。
パラレルReplicatを使用する場合は、次の値(デフォルト値)を確認してください。
- 証跡内のメタデータ(つまり、証跡が12.1より前でフォーマットされている場合、パラレルReplicatは使用できません)。
- 証跡ファイルにはスケジュール列が必要です。
- UPDATERCORDFORMAT COMPACTを使用する必要があります。
統合パラレルReplicatでは、Replicatはデータをターゲット・データベースに適用するインバウンド・サーバーにLCRを送信します。通常のパラレルReplicatでは、その他の非統合Replicatの動作と同様に、SQL文としてLCRをデータベースに直接適用します。
ノート:
OLTPワークロードで最適なパフォーマンスが得られるように、非統合モードのパラレルReplicatをお薦めします。
パラレルReplicatのコンポーネントは次のとおりです。
- マッパーはパラレルに動作し、証跡の読取り、証跡レコードのマッピング、マップされたレコードの統合Replicat LCR形式への変換、および後続の処理のためのマージャへのLCRの送信を実行します。1つのマッパーが1つのセットのトランザクションをマップしている間に、次のマッパーが次のセットのトランザクションをマップします。証跡情報は分割されますが、証跡情報が正しく順序付けされるため、証跡ファイルはそのままの状態になります。
- マスター・プロセスにはコレータとスケジューラの2つのスレッドがあります。コレータはマスターからマップされたトランザクションを受け取り、依存関係の計算のために証跡の順序に戻します。スケジューラがトランザクション間の依存関係を計算し、トランザクションを独立したバッチにグループ化し、ターゲット・データベースに適用するためにバッチをアプライアに送信します。
- アプライアは配列実行のためにバッチ内のレコードを並べ替えます。さらにバッチをターゲット・データベースに適用し、エラー処理を実行します。また、適用したトランザクションをチェックポイント表で追跡します。
ノート:
パラレルReplicatでは、外部キー列が索引付けされている必要があります。