[Oracle Cloud] OCI GoldenGateとは？

Oracle Cloudで提供しているOCI GoldenGateについてまとめてみました。

# OCI GoldenGateとは？

「Oracle Cloud Infrasturcutre GoldenGate（以下OCI GoldenGate）」とは、Oracle Cloud Infrastructure（以下OCI）上で利用可能なデータ・レプリケーション・サービスです。もともとオンプレミスで提供されている「Oracle GoldenGate」というデータ・レプリケーション製品があり、それをOCI上でマネージド・サービスとして提供しているのがOCI GoldenGateです。

# Oracle GoldenGateとは？

そもそもOracle GoldenGateでは何ができるのでしょうか？
Oracle GoldenGateを使って、複数のデータソース間で低遅延のデータ・レプリケーションを実現することができます。一番標準的な使い方は、データベース間でデータを連携することです。

Oracle GoldenGateの主な特徴を挙げてみました。

+ 低遅延でデータの同期が可能
トランザクション量や通信のレイテンシによりますが、ほぼリアルタイムでデータの同期を行うことが可能です。そのため、連携先で最新のデータを参照することができます。
+ 異機種（異OS、異データベース、異バージョン）間での柔軟なデータ連携が可能
GoldenGateは一度データを読み込むと、製品に依存しない標準フォーマットに変換するため、ソースやターゲットがそれぞれGoldenGateに対応しているかを確認するだけで連携可能です。ソースとターゲットの組み合わせを意識する必要はありません。
+ 部分的なデータ同期が可能
データベース全体ではなく、特定のスキーマや表、列などを指定してフィルタリングした上で同期することができます。
+ 多様なデータソースをサポート
GoldenGateがサポートしているデータソースは、Oracle Databaseだけではなく他のデータベースや、フラットファイル、Hadoop等のBig Data環境など、様々なデータソースをサポートしています。Oracle DatabaseもEditionで制限されず、Standard Editionでも利用可能です。
注：現状OCI GoldenGateは、Oracle Database/Exadata/ExaCS/ADBなど限られたデータソースのみ対応しています（[サポートされるデータベース](https://docs.oracle.com/cd/E83857_01/paas/goldengate-service/using/database-registrations.html#GUID-384772C7-B327-420C-B6AA-B6CEA727322F)）。オンプレミス版GoldenGateの対応データソースは[Certification Matrix](https://www.oracle.com/middleware/technologies/fusion-certification.html)で確認できます。
+ 既存データベースへの負荷が最小限
データベースに差分表などを作る必要はなく、データベースの変更ログ（OracleだとREDOログ）からデータを取得するので、ソース・データベースに比較的負荷をかけずにデータを取り出して転送することが可能です。
+ データの差分のみを転送するため、ネットワークの負荷が最小限
上記の通り差分ログだけを転送するので、ソースとターゲットの間のネットワークの負荷も最小限で済みます。
+ 稼働中のデータベース同士で双方向で転送が可能
一方向の同期だけではなく、双方向でデータの同期をすることができます。簡単な競合解決機能もついています。また、データベース移行に使った場合、C/O後に新システム→旧システムへと逆方向で連携することで、万が一何かあった時に最新のデータで切り戻すことができます。
+ Oracle Databaseと親和性
Oracle Data Pumpと連携することで初期データ同期の工数が削減できるなど、Oracle Databaseとの連携時には、より多くのメリットがあります。

# GoldenGateの利用例

GoldenGateがどういった用途で使えるかの例を挙げてみました。

+ データの切り出し・負荷分散
本番データベースの負荷が高い場合、分析用・海外拠点用・災害対策用など用途に応じてデータ同期して、本番データベースの負荷を下げることができます。（注：災害対策用としてはOracle Databaseの機能であるOracle Data Guardも利用可能です）
+ リアルタイムDWHへのデータ集約
業務システム等からDWHへのデータ同期を、バッチからGoldenGateを使ったリアルタイム連携に切り替えることで、最新のデータを分析することが可能になります。
+ バージョンアップ・システム統合
異なるバージョンのデータベース同士で連携可能なので、移行時にGoldenGateを使って最新のデータまで同期することができます。また、並行稼働や切り戻しなども実現できます。
+ 分散環境でのデータ配信
分散環境で同じデータを複数のデータソースに配信する必要がある場合、GoldenGateを使ってデータを配信することが可能です。

# オンプレミス版GoldenGateとOCI GoldenGateは何が違うの？

こちらの資料に説明がありました。
+ [OCI GoldenGate Overview 2021年4月版](https://www.slideshare.net/oracle4engineer/oci-goldengate-overview-20214)
p.11に「OCI GoldenGate - フルマネージド型の違い」があります。

# オンプレミス版GoldenGateとOCI GoldenGateどちらを使う？

+ ソースとターゲットがどこにあるのか？
Oracle Cloudにあるデータソースがソースやターゲットの場合は、OCI GoldenGateを検討すると良いと思います。オンプレミス同士やOracle Cloud以外のクラウド環境でデータ同期する場合は一度Oracle Cloud上にデータを転送することになり通信の負荷が大きいので、オンプレミス版を検討するのが良いでしょう。
+ ライセンス/サービス料金
オンプレミス版のライセンスとクラウド版のサービス利用料は、価格体系などが全く異なります。例えばOracle CloudのUniversal Creditsの契約を持っている場合、同じお財布からOCI GoldenGateサービス利用料をサブスクリプションライセンスで利用できます。手持ちのライセンスや構成などによって、利用しやすい方を選択すると良いでしょう。
+ マネージドか自分で管理するか
上記「オンプレミス版GoldenGateとOCI GoldenGateは何が違うの？」にある通り、OCI GoldenGateはマネージド・サービスなので、自動スケーリング機能やOSの管理などが利用できます。逆にすべてを自分で管理したい場合はオンプレミス版GoldenGateを利用するのが良いでしょう。オンプレミス版GoldenGateをクラウドを利用する場合は、[Oracle Cloud MarketplaceのGoldenGate](https://cloudmarketplace.oracle.com/marketplace/en_US/listing/58489224)がありますし、ライセンス持込みでIaaS上にインストールすることも可能です。
+ OCI GoldenGateが対応しているデータソースか
上記「多様なデータソースをサポート」の注意書きに記載した通り、現状はまだOCI GoldenGateのデータソースが限られています。そのため、OCI GoldenGateで対応していない場合は、オンプレミス版GoldenGateを利用することも可能です。
+ OCI GoldenGateとオンプレミス版GoldenGateの組み合わせ
上記に加えて、オンプレミス版GoldenGateからOCI GoldenGateへのデータ連携も可能なので、それを含めて構成を検討できます。

# OCI GoldenGateの値段

OCI GoldenGateは、サービスが使用するOCPUの数(/分)に対して課金されます。[価格表](https://www.oracle.com/jp/cloud/price-list.html#goldengate)によると、1OCPU(=2vCPU)あたり161.292円/時です（2022年3月現在）。OCPUは1～24OCPUから選択できます。価格表の表記は時間単位ですが、実際は分単位で課金されます。
注：価格表にある「Oracle GoldenGate Cloud Service - Enterprise」は古いサービスなのでご注意ください。

オートスケール機能を有効にすると、作成時に指定したOCPU数の3倍を上限として、「実際に消費されたOCPUの時間当たりの平均数」が課金されます。カウント方法の詳細はマニュアルの「[測定及び請求](https://docs.oracle.com/cd/E83857_01/paas/goldengate-service/using/overview-goldengate.html#GUID-060AE4E2-D9BD-485D-8F2C-C9917717BA6C)」で確認できます。

また、オンプレミス版のGoldenGateライセンスを持ち込むことで、BYOL料金でOCI GoldenGateを利用することも可能です。1OCPU(=2vCPU)あたり38.712円/時となります（2022年3月現在）。変換率は、[Oracle PaaS and IaaS Universal Credits Service Descriptions](https://www.oracle.com/us/corporate/contracts/paas-iaas-universal-credits-3940775.pdf)で確認できます。

オンプレミス版GoldenGateの場合は、GoldenGateのサーバに対してではなく、ソースやターゲットのデータベースのプロセッサ数に対して課金されるので、全く違う課金体系ですね。

# まとめ

この記事ではOCI GoldenGateとは何なのか、オンプレミスのGoldenGateの特徴や違いなどについてまとめてみました。


# 参考情報
#### ドキュメント（マニュアル）
+ [Oracle Cloud Infrastructure GoldenGate（英語）](https://docs.oracle.com/en/cloud/paas/goldengate-service/index.html "OCI GoldenGate 英語マニュアル")
+ [Oracle Cloud Infrastructure GoldenGate（日本語）](https://docs.oracle.com/cd/E83857_01/paas/goldengate-service/index.html "OCI GoldenGate 日本語マニュアル")
+ [Oracle GoldenGate 製品マニュアル（英語）](https://docs.oracle.com/en/middleware/goldengate/index.html)
+ [Oracle GoldenGate 製品マニュアル（日本語）](https://www.oracle.com/jp/middleware/technologies/documentation/goldengate.html)

#### Oracle GoldenGate製品情報
+ [Oracle GoldenGate製品ページ（日本語）](https://www.oracle.com/jp/integration/goldengate/)
+ [Oracle GoldenGateの優位性（PDF）](https://www.oracle.com/jp/a/ocom/docs/techpaper-goldengate-advantage-july2021-ja.pdf)