データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

Oracle GoldenGate入門:基本概念からアーキテクチャ、キャプチャ・Replicatモードまで徹底解説

本記事では、Oracle® GoldenGate®の基本とその機能について詳しく解説します。GoldenGateはデータベースアーキテクチャから切り離された(デカップルされた)設計となっているため、異種間・同種間を問わず、トランザクション変更データのリアルタイムなキャプチャ(取得)と統合を容易に実現できます。

Oracle GoldenGateとは

Oracle GoldenGateは、あるデータベースから別のデータベースへデータをレプリケート(複製)、フィルタリング、変換できるソフトウェア製品です。

Oracleデータベース間だけでなく、サポート対象の異種データベースとの間でもデータレプリケーションを実現できます。

GoldenGateを使うメリット

GoldenGateを利用する主な理由は以下の通りです。

  • データ移動がリアルタイムで行われ、レイテンシ(遅延)を最小限に抑えられる。
  • コミット済みのトランザクションのみが転送されるため、一貫性が保たれ、パフォーマンスも向上する。
  • Oracleデータベースのさまざまなバージョンやリリースに対応しており、多様なOS上で動作する異種データベースも幅広くサポートしている。
  • シンプルなアーキテクチャを採用しており、設定が容易。
  • 基盤となるデータベースやインフラへのオーバーヘッドが最小限で、高いパフォーマンスを発揮する。

GoldenGateが対応するビジネス要件

GoldenGateは、以下のようなビジネス要件を満たすために活用できます。

  • ビジネス継続性と高可用性の確保
  • ダウンタイムゼロでの初期ロード、データベース移行およびアップグレード
  • データ統合
  • ライブレポーティング(リアルタイムレポート)

GoldenGateの使い方

GoldenGateでは、シンプルな一方向構成から、より複雑なピアツーピア構成まで、多彩なアーキテクチャを構築できます。GoldenGateがサポートするさまざまなトポロジについては、下記の画像を参照してください。

Oracle GoldenGate入門:基本概念からアーキテクチャ、キャプチャ・Replicatモードまで徹底解説

画像出典: https://www.vitalsofttech.com/goldengate-replication-topologies/

GoldenGateの論理アーキテクチャ

次の画像は、GoldenGateアーキテクチャを構成するコンポーネント(プロセス)を示したものです。各プロセスの詳細はこの後のセクションで説明します。

Oracle GoldenGate入門:基本概念からアーキテクチャ、キャプチャ・Replicatモードまで徹底解説

画像出典: https://www.vitalsofttech.com/wp-content/uploads/2013/06/GoldenGate-Replication.jpg

Manager(マネージャ)

Managerは、他のGoldenGateプロセスを起動する役割を持つプロセスです。ソース側とターゲット側の両システムで稼働させる必要があり、その他すべてのGoldenGateプロセスを起動します。また、古いトレイルファイルや抽出ファイルを削除(パージ)することでディスク容量の管理も行います。GoldenGateのインストールごとに1つのManagerプロセスが必要です。

Extract(抽出)

Extractプロセスはデータ抽出を担当し、GoldenGateではこれを「データキャプチャ」と呼びます。Extractは、ソース側のマイニングデータベースに対して実行されるよう構成されるプロセスです。

Extractは、OracleのREDOログからコミット済みのDML(データ操作言語)トランザクションおよびDDL(データ定義言語)をキャプチャする責務を担い、これらのデータ変更をトレイルファイルまたは抽出ファイルに書き込みます。

Trail(トレイル)

Trailとは、GoldenGateがキャプチャした変更データを格納するディスク上の一連のファイル群のことです。これにより、データベース変更の継続的な抽出とレプリケーションが可能になります。トレイルファイルはOSレベルでプラットフォームに依存しないバイナリファイルです。

Replicat(複製適用)

Replicatは、ターゲットデータベースへデータを配信するプロセスです。ターゲット側のトレイルファイルを読み取り、DMLまたはDDL操作を再構築して、ターゲットデータベースに適用します。

Pump(ポンプ)

PumpプロセスはExtractプロセスの一種ですが、GoldenGate構成において任意(オプション)です。このプロセスは、データを含むトレイルファイルをターゲットシステムへコピーします。

Checkpoint(チェックポイント)

Extract PumpおよびReplicatプロセスは、それぞれの進捗状況を追跡するためにチェックポイントを使用します。この仕組みにより、トレイルファイルから取得済みまたは適用済みのデータ変更位置が記録されます。障害発生時にプロセスがデータ損失なくリカバリーしたり、再開ポイントを把握したりする際に非常に有用です。

Collector(コレクター)

Collectorプロセスはターゲットシステム上で動作し、ソースデータベースからのデータ変更をターゲット側のトレイルファイル(RMTTRAILと呼ばれます)に書き込みます。RMTTRAILに書き込む前に、Collectorはファイルを再構成(リアセンブル)します。

GoldenGateのキャプチャモード

Oracle GoldenGateは、以下の2種類のキャプチャ方式をサポートしています。

  • クラシックキャプチャ(Classic Capture)
  • 統合キャプチャ(Integrated Capture)

クラシックキャプチャモード

クラシックキャプチャは、GoldenGateのオリジナルのキャプチャ機構であり、オンラインREDOログおよび可能な範囲でアーカイブREDOログから直接データを読み取ります。必要に応じて、追加のデータがデータベースファイルからフェッチされる場合もあります。

統合キャプチャモード

統合キャプチャ(IC)は、Oracle GoldenGate 11.2.1で導入された機能で、当初はIntegrated Extract 11.2.x用の11.2.0.3データベース固有バンドルパッチを適用したOracle 11.2.0.3向けに提供されていました(MOS Note 1411356.1)。ICは、Data GuardのロジカルスタンバイやOracle Streamsと同様に、ソースシステム上またはダウンストリームのOracleデータベース内でログマイニングサーバーを使用します。

ICは、Extractプロセスの新しい形態であり、処理がソースデータベース内部に移行しました。従来のクラシックExtractでは、実際のデータベースドメインの外部にあるREDOログに対して処理を行っていましたが、ICではサーバーのログマイナープロセスが起動され、すべてのDMLデータとDDLステートメント(CREATE、ALTER、DROPなど)を抽出して論理変更レコード(LCR)を生成します。これらのレコードはGoldenGateのメモリプロセスに引き渡され、ローカルのトレイルファイルに書き込まれます。

GoldenGateのReplicatモード

バージョン12.1のリリース以前、Replicatはターゲットデータベースに対してトランザクションを逐次(シリアルに)適用していました。並列性を実現するには、テーブルを複数のReplicatに分割し、データ適用を高速化してラグを減らす必要がありました。しかしこの手法には、複数のReplicatとトレイルファイルの手動構成が必要になること、また外部キー関係を持つテーブルをReplicat間で分割できないという制約といった課題がありました。

新しく追加されたCoordinated Replicat(コーディネーテッドReplicat)とIntegrated Replicat(統合Replicat)の各モードを使用すれば、テーブルを手動で複数のReplicatに分割することなく、ターゲットデータベース上でトランザクションを並列に適用できます。

以下、各Replicatモードについて説明します。

クラシックReplicat(Classic Replicat)

クラシックReplicatでは、ターゲットデータベースのチェックポイントによって、どのトランザクションがコミット済みでどれが未コミットかがシステムに通知されます。これはトランザクションレプリケーションにおける重要な要素です。

クラシックReplicatの特徴は以下の通りです。

  • SQLを逐次(シリアルに)適用する。
  • データベースバージョンが11.2.0.4未満の場合に使用する必要がある。

次の画像はクラシックReplicatを示したものです。

Oracle GoldenGate入門:基本概念からアーキテクチャ、キャプチャ・Replicatモードまで徹底解説

画像出典: https://docs.oracle.com/GoldenGate/1212/gg-winux/GIORA/img/integratedapply.jpg

コーディネーテッドReplicat(Coordinated Replicat)

構成されたReplicatは「コーディネーター」と呼ばれます。このプロセスは、指定されたスレッド数に基づいて追加のReplicatを起動します。Replicat名は5文字までに制限されており、スレッド化されたReplicatにはその名前に3桁の番号が付加されます(例:RGGMA、RGGMA001、RGGMA002など)。コーディネーターはスレッドにSQLを送信し、各スレッドはコミット順序を維持しながら並列に適用することができます。

次の画像はコーディネーテッドReplicatを示したものです。

Oracle GoldenGate入門:基本概念からアーキテクチャ、キャプチャ・Replicatモードまで徹底解説

画像出典: https://www.red-gate.com/simple-talk/sql/oracle/oracle-GoldenGate-12c-new-features-part-2/

統合Replicat(Integrated Replicat)

統合Replicatの特徴は以下の通りです。

  • ソースデータベースのDMLトランザクション(コミット順)を表すLCRを構築する。DDLはReplicatによって直接適用される。これらのトランザクションは並列に適用可能。
  • 軽量なストリーミングインターフェースを介して、ターゲットデータベース内のバックグラウンドプロセスである「データベースインバウンドサーバー」に接続する。
  • LCRをインバウンドサーバーに送信し、インバウンドサーバーがターゲットデータベースにデータを適用する。

次の画像は統合Replicatを示したものです。

Oracle GoldenGate入門:基本概念からアーキテクチャ、キャプチャ・Replicatモードまで徹底解説

画像出典: https://docs.oracle.com/GoldenGate/1212/gg-winux/GIORA/process_mode.htm#GIORA212

まとめ

本記事では、GoldenGateの利用方法と活用理由を解説するとともに、そのアーキテクチャとコンポーネントについて詳しく紹介しました。さらに、このツールに組み込まれているキャプチャモードとReplicatモードについても詳しく説明しました。

ご意見やご質問がある場合は、フィードバックタブからお気軽にお寄せください。

  1. Oracle Data Guard Far Syncで実現するデータ損失ゼロの遠隔地スタンバイ構成

    本記事では、Oracle® Data Guardの機能の一つである「Far Sync」について詳しく解説します。 Far Syncは、物理的に離れた場所にあるプライマリ・データベースとスタンバイ・データベース間で、同期REDO転送を可能にするためにOracleが設計した新しい構成方式です。Oracle 12cで導入されたこの技術により、プライマリ・データベースがどれほど遠い場所にあっても、データ損失ゼロと高い保護レベルを実現できます。 Far Syncインスタンスは、プライマリ・データベースからREDOを受信し、それをスタンバイへ転送する役割を担います。ただし、Far Syncインスタンスには

  2. 透過的データ暗号化(TDE)とは?Oracleデータベースの暗号化機能を徹底解説

    Oracle®は、セキュリティ対策の一環として、Oracle 12cにおいて透過的データ暗号化(Transparent Data Encryption:TDE)機能を導入しました。この機能により、ユーザーは機密データに対して表領域レベルおよび列レベルの暗号化を有効にできるようになります。 TDEの概要 データを暗号化すると、許可されたユーザーやアプリケーションのみがそのデータにアクセスできるようになります。Oracleでは、認証・権限付与・監査のためのツールやプロセスがデータベースに対して提供されていますが、データを格納しているOSのデータファイル自体は保護対象外でした。そこでTDEが重要な役