Oracle データベースの REDO ログファイルの操作

Datastream は、Oracle redo ログファイルから変更データ キャプチャ(CDC)イベントを抽出し、ソース データベースから宛先に変更を複製します。Oracle データベースは、すべてのトランザクションをオンライン REDO ログファイルに記録し、現在のログファイルがローテーションされるときにそれらのファイルをアーカイブします。Datastream が redo ログファイルにアクセスする方法を選択し、ログファイルのサイズとローテーション頻度を構成して、レプリケーション レイテンシを短縮できます。

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;」と入力します。

次のステップ