MAXTRANSOPS
有効な対象
Replicat (統合および並列Replicatモードではサポートされません)
摘要
MAXTRANSOPSパラメータでは、大きなソース・トランザクションを小さく分割してターゲット・システムに送信します。このパラメータは、ターゲット・データベースが大きなトランザクションに対応するように構成されていないときに使用できます。たとえば、ターゲットのOracleロールバック・セグメントが百万の削除を実行するソース・トランザクションを再作成できるほど大きくない場合にMAXTRANSOPS 10000を指定すると、Replicatは各10,000削除グループの後にコミットを発行できます。
MAXTRANSOPSを使用すると、Replicatは正しい順番で操作を適用しますが、ソース・アプリケーションによって課せられたトランザクション境界が変更されます。このため、そのトランザクション中にExtractが失敗すると、エラーが発生することがあります。Extractでは、古いトランザクションを上書きするかわりに、トレイルの最後にトランザクションをリライトします。トレイルは順次形式であるため、Replicatは古いトランザクションの処理を開始しますが、リカバリ・マーカーと新しいトランザクションを受け取ると、ロールバックしてから新しいトランザクションの適用を開始する必要があります。MAXTRANSOPSによってReplicatが元のトランザクションを複数の小さなトランザクションに分割していた場合、Replicatは、ターゲットにコミットされなかった部分しかロールバックできないことがあります。Replicatがコミット済操作をもう一度処理した場合、SQL操作のタイプに応じて、行重複エラーまたは紛失エラーが発生します。最小値は1です。ノート: Replicatの異常終了エラーをトラブルシューティングする場合、Oracle Supportでは、GROUPTRANSOPSを1に設定し、MAXTRANSOPSを1に設定するようリクエストすることがあります。これは単にトラブルシューティングのための一時的な構成で、本番環境で常時使用しないでください。そうしないと、データ整合性のエラーになります。
デフォルト
10,000,000
構文
MAXTRANSOPS <number>
<number>
単一のトランザクション・グループに分割する操作数。
例
MAXTRANSOPS 10000