変更データ キャプチャ中、Datastream は Oracle REDO ログファイルを読み取って、移行元データベースの変更をモニタリングし、移行先インスタンスに複製します。各 Oracle データベースには、一連のオンライン REDO ログファイルがあります。データベース上のすべてのトランザクション レコードは、これらのファイルに記録されます。現在の REDO ログファイルがローテーション(または切り替え)されると、アーカイブ プロセス によってこのファイルがアーカイブ ストレージにコピーされます。その間、データベースは別のファイルを現在のファイルとして昇格させます。
Datastream Oracle コネクタは、Oracle REDO ログファイルから変更データ キャプチャ(CDC)イベントを抽出します。
REDO ログファイルにアクセスする
Datastream は、Oracle LogMiner API またはバイナリ リーダー メソッドを使用して REDO ログファイルにアクセスできます。
Oracle LogMiner: Oracle データベースに含まれるすぐに使用できるユーティリティ。 Oracle LogMiner API を使用するように Datastream を構成すると、Datastream はアーカイブされた REDO ログファイルでのみ動作します。オンライン REDO ログファイルはサポートされていません。 LogMiner API メソッドはシングルスレッドであり、トランザクション数の多いソース データベースを使用する場合、レイテンシが高く、スループットが低くなります。 LogMiner は、ほとんどのデータ型と Oracle データベース機能をサポートしています。
バイナリ リーダー(プレビュー版): オンラインとアーカイブの両方の REDO ログファイルで動作する、特殊な高パフォーマンス ユーティリティ。バイナリ リーダーは、自動ストレージ管理(ASM)を使用するか、データベース ディレクトリ オブジェクトを使用してファイルを直接読み取ることで、ログファイルにアクセスできます。 バイナリ リーダーはマルチスレッドであり、低レイテンシの CDC をサポートしています。また、REDO ログはデータベース オペレーションの外部で解析されるため、ソース データベースへの影響は小さくなります。バイナリ リーダー CDC メソッドでは、特定のデータ型または機能のサポートが限定されています。詳細については、 既知の制限事項をご覧ください。
Oracle REDO ログファイルの構成パラメータを設定する
LogMiner CDC メソッドを使用する場合、この設計は Datastream の潜在的なレイテンシに大きく影響します。LogMiner はアーカイブされたログからのみ読み取るため、Oracle の REDO ログファイルを頻繁に切り替えたり、より小さいサイズ(256 MB 未満など)を保持したりすると、Datastream が変更を迅速に複製できます。これは、オンライン REDO ログファイルからアクティブに読み取る バイナリ リーダー メソッドには適用されません。
ログファイルのローテーションの頻度を制御するために設定できる構成パラメータがあります。
サイズ: オンライン REDO ログファイルの最小サイズは 4 MB で、デフォルト サイズはオペレーティング システムによって異なります。ログファイルのサイズを変更するには、新しいオンライン ログファイルを作成し、古いログファイルを削除します。
オンライン REDO ログファイルのサイズを確認するには、次のクエリを実行します。
SELECT GROUP#, STATUS, BYTES/1024/1024 MB FROM V$LOG
時間:
ARCHIVE_LAG_TARGETパラメータには、プライマリ データベースの現在のログを使用できる時間の上限(秒単位)を指定します。これは正確なログ切り替え時間ではありません。ログのアーカイブにかかる時間が考慮されるためです。デフォルト値は
0(上限なし)で、1800(30 分)以下の適切な値をおすすめします。次のコマンドを使用すると、初期化中またはデータベースの起動中に
ARCHIVE_LAG_TARGETパラメータを設定できます。SHOW PARAMETER ARCHIVE_LAG_TARGET;このコマンドは、現在のログが使用される秒数を表示します。ALTER SYSTEM SET ARCHIVE_LAG_TARGET = number-of-seconds;: 上限を変更するには、このコマンドを使用します。たとえば、上限を 10 分(600 秒)に設定するには、「
ALTER SYSTEM SET ARCHIVE_LAG_TARGET = 600;」と入力します。