Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[HeatWavejpMeetup#08] OCI GoldenGate を用いたAutono...

[HeatWavejpMeetup#08] OCI GoldenGate を用いたAutonomous Database から MySQL HeatWave へのデータ連携 [稲葉 祐人 氏(スマートスタイル)]

HeatWavejp Meetup #08 「MySQL HeatWave に企業の社内外で発生するあらゆるデータを取り込み、活用しよう!」(2024/6/17 開催)の講演資料です。

【講演内容】
OCI GoldenGate を用いたAutonomous Database から MySQL HeatWave へのデータ連携

本セッションでは、OCI GoldenGateを活用し、Autonomous Database と MySQL HeatWave の間でデータ連携を行う具体的な手順についてご紹介します。
また Autonomous Database から MySQLHeatWave へのデータ連携を行う際に気をつけるべきポイントや、陥りがちな落とし穴について触れていきます。

1. OCI GoldenGate とは
2. データ連携の全体像
3. データ連携の手順
4. 補足
5. まとめ

【発表者】
株式会社スマートスタイル
データベース&クラウド事業部 技術本部 クラウド部
稲葉 祐人 氏

【イベント情報】
HeatWavejp Meetup #08
https://heatwavejp.connpass.com/event/320624/

More Decks by HeatWavejp(MySQL HeatWave Japan User Group)

Other Decks in Technology

Transcript

  1. Copyright © 2024 HeatWavejp All Rights Reserved. HeatWavejp Meetup #08

    OCI GoldenGate を用いた Autonomous Database から MySQL HeatWave へのデータ連携 2024年6月17日(月) 株式会社スマートスタイル DB&クラウド事業部 技術本部 クラウド部 稲葉 祐人
  2. Copyright © 2024 HeatWavejp All Rights Reserved. 1. OCI GoldenGate

    とは 2. データ連携の全体像 3. データ連携の手順 4. 補足 5. まとめ アジェンダ
  3. Copyright © 2024 HeatWavejp All Rights Reserved. OCI GoldenGate とは①

    OCI GoldenGateとは • 「Oracle GoldenGate」というデータ・レプリケーション製品のOCI上のマネージド・サービス • GoldenGateの魅力は、複数のデータソース/ターゲット間で低遅延のデータ・レプリケーションを実現可能
  4. Copyright © 2024 HeatWavejp All Rights Reserved. OCI GoldenGate とは②

    Source Trail File Service Manager Administration Server GoldenGate Deployment Target ①Extractが変更履歴を抽出し、 Trail Fileへ書き込む ②ReplicatがTrail Fileを読み込み、 同じトランザクションを実行 Service Manager (OCIではコンソール)が デプロイメント全体を管理 Administration Server (OCIではGoldenGateコンソール)で 各プロセス実装・運用・監視・管理 GoldenGateの基本的な構成
  5. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の全体像② ソースDB ターゲットDB

    データ連携の流れ • 以下の公式チュートリアルで紹介されている手順を参考にソースとターゲット変更して実施 OCI MySQL HeatWaveデータベースからAutonomous Data Warehouseへのデータのレプリケート (oracle.com)
  6. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順⓪ ソースDBとターゲットDBの作成 1.

    対象となるDBとVCNを作成します。 • ソースDB : Autonomous Database (ATP 19c) • ターゲットDB: MySQL HeatWave (MySQL 8.4.0 - LTS) • VCN :「インターネット接続性を持つ」ウィザードで作成し、セキュリティリストを修正 ADBの構築方法に関する 弊社ブログ HeatWave構築に関する 弊社ホワイトペーパー
  7. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順② データ連携の準備(ターゲットDB ー

    MySQL HeatWave) 1. Oracle社提供のSQLスクリプトをダウンロードします。 2. Insert文は実行せずに、 SRC_OCIGGLLデータベースを作成します 3. SRC_OCIGGLLデータベース内に以下の6つの空テーブルを作成します。 • SRC_CITY • SRC_CUSTOMER • SRC_ORDERS • SRC_ORDER_LINES • SRC_PRODUCT • SRC_REGION 4. 作成したテーブルが空であることを確認します。
  8. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順④ データ連携の準備(ターゲットDB ー

    MySQL HeatWave) 5. 各テーブルに対してプライマリーキーを追加します。 mysql> alter table SRC_OCIGGLL.SRC_CITY add primary key (CITY_ID); 6. 各テーブルに対してHeatWaveを利用するという設定(RAPID設定)を行います。 mysql> alter table SRC_OCIGGLL.SRC_CITY secondary_engine RAPID; プライマリーキーの追加 RAPID設定
  9. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順⑤ データ連携の準備(ターゲットDB ー

    MySQL HeatWave) 7. SRC_OCIGGLLデータベースのテーブルのデータをMySQL HeatWaveにロードします。 8. OCI GoldenGateで使用するユーザを作成し、権限を付与します。 HeatWaveへのロード ggadminユーザの作成と権限付与
  10. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順⑦ データ連携の準備(ソースDB ー

    ADB) 1. ADBのツール「Database Actions」からGGADMINユーザを有効化します。 2. Database ActionsなどでADBに接続し、サプリメンタル・ロギングを有効化します。 SQL> alter pluggable database add supplemental log data; GGADMINユーザの有効化 サプリメンタル・ロギングの有効化
  11. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順⑧ データ連携の準備(ソースDB ー

    ADB) 3. Oracle社提供のSQLスクリプトzipファイルをダウンロードします。 4. zipファイルを解凍し、以下のファイルのSQLスクリプトをDatabase Actionsなどで実行します。 • OCIGGLL_OCIGGS_SETUP_USERS_ATP.sql • OCIGGLL_OCIGGS_SRC_USER_SEED_DATA.sql ファイル選択 SQLスクリプトの実行
  12. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順⑨ データ連携の準備(ソースDB ー

    ADB) ※ 注意 「OCIGGLL_OCIGGS_SRC_USER_SEED_DATA.sql」を実行するときに、 SQLスクリプトのデータ型が適切でないというエラーが出るので、 197行目~209行目を以下のように書き換えてみてください!
  13. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順⑪ データ連携の準備(OCI GoldenGate

    ー ADB) 1. OCIのコンソール画面のハンバーガーメニューから「Oracle Database」を選択し、 「GoldenGate」をクリックします。 2. 以下の項目を入力し、ADB用のデプロイメントを作成します。 • 名前:GGOracleATP(任意のもので可) • デプロイメント方法:開発またはテスト(検証のため) • OCPU数:1(検証のため) • サブネット:プライベートサブネット • ライセンスタイプ:ライセンス込み • ネットワーク(オプション):GoldenGateコンソール・パブリック・アクセスを有効化
  14. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順⑫ データ連携の準備(OCI GoldenGate

    ー ADB) 2. (続き) 以下の項目を入力し、ADB用のデプロイメントを作成します。 • デプロイメント・タイプ:データ・レプリケーション • テクノロジ:Oracle Database • バージョン:oggoracle:21.14.0.0.0_240525.0856_994 • GoldenGateインスタンス名:GGinstOracleATP • 管理者ユーザー名:oggadmin • パスワード・シークレット:作成したシークレットキーを選択 ※シークレットは、OCI上のVaultサービスを活用し、作成します。その際に「手動シークレット作成」、 「プレーンテキスト」を選択し、GoldenGateにログインするパスワードを入力してください。 詳細は以下のドキュメントを参照してください。 参考:Vaultでのシークレットの作成 (oracle.com)
  15. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順⑬ データ連携の準備(OCI GoldenGate

    ー ADB) 3. ソースDBであるADBにアクセスするために、接続オブジェクトを作成します。 4. コンソール上で「GoldenGate」から「接続」を選択し、以下の項目を入力して作成します。 • 名前:srcoracleatp • タイプ:Oracle Autonomous Database • 接続詳細:「データベースの選択」をクリック • データベース:準備で作成したADBを選択 • データベース・ユーザー名:ggadmin • データベース・ユーザー・パスワード:GGADMINを有効化した際のパスワードを入力 • ネットワーク接続:共有エンドポイント 5. 接続オブジェクトをデプロイメントにアタッチします。
  16. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順⑮ データ連携の準備(OCI GoldenGate

    ー MySQL HeatWave) 1. OCIのコンソール画面のハンバーガーメニューから「Oracle Database」を選択し、 「GoldenGate」をクリックします。 2. 以下の項目を入力し、MySQL HeatWave用のデプロイメントを作成します。 ※ADBとの相違点のみ太文字にしています。 • 名前: GGMySQLHW(任意のもので可) • デプロイメント方法:開発またはテスト(検証のため) • OCPU数:1(検証のため) • サブネット:プライベートサブネット • ライセンスタイプ:ライセンス込み • ネットワーク(オプション):GoldenGateコンソール・パブリック・アクセスを有効化
  17. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順⑯ データ連携の準備(OCI GoldenGate

    ー MySQL HeatWave) 2. (続き) 以下の項目を入力し、ADB用のデプロイメントを作成します。 • デプロイメント・タイプ:データ・レプリケーション • テクノロジ:MySQL • バージョン: oggmysql:21.14.0.0.0_240404.1108_994 • GoldenGateインスタンス名:GGinstMySQLHW • 管理者ユーザー名:oggadmin • パスワード・シークレット:作成したシークレットキーを選択(ADBと同じキーでも可) ※シークレットは、OCI上のVaultサービスを活用し、作成します。その際に「手動シークレット作成」、 「プレーンテキスト」を選択し、GoldenGateにログインするパスワードを入力してください。 詳細は以下のドキュメントを参照してください。 参考:Vaultでのシークレットの作成 (oracle.com)
  18. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順⑰ データ連携の準備(OCI GoldenGate

    ー MySQL HeatWave) 3. ターゲットDBであるHeatWaveにアクセスするために、接続オブジェクトを作成します。 4. コンソール上で「GoldenGate」から「接続」を選択し、以下の項目を入力して作成します。 • 名前:trgmysqlhw • タイプ:OCI MySQL HeatWave • 接続詳細:「 MySQLデータベース・システムの選択」をクリック • データベース:準備で作成したHeatWaveを選択 • データベース名: SRC_OCIGGLL • データベース・ユーザー名:ggadmin • データベース・ユーザー・パスワード:ggadminを有効化した際のパスワードを入力 • SSL詳細:TLS(セキュリティ・プロトコル)/優先(SSLモード) 5. 接続オブジェクトをデプロイメントにアタッチします。
  19. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順⑳ Extractの作成(OCI GoldenGate

    ー ADB) 1. OCIのコンソール画面の「GoldenGate」からADB用のデプロイメントを選択し、 「コンソールの起動」をクリックし、管理者ユーザーoggadminでログインします。 OCI GoldeGateログイン画面 OCI GoldeGateコンソール画面
  20. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㉑ Extractの作成(OCI GoldenGate

    ー ADB) 2. 管理サービスの画面上部にある「+」のボタンをクリックし、以下の項目を入力してExtractを追加します。 • 抽出タイプ:統合Extract • プロセス名:CDCEXT • トレイル名:C1 • 資格証明ドメイン:OracleGoldenGate • 資格証明別名:srcoracleatp(接続オブジェクト作成時の名前) • パラメーター・ファイル:最後の行に「 TABLE SRC_OCIGGLL.*; 」を追加
  21. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㉒ Extractの作成(OCI GoldenGate

    ー ADB) 3. 再度「+」のボタンをクリックし、以下の項目を入力して初期ロード用のExtractを追加します。 • 抽出タイプ:Extractの初期ロード • プロセス名:ILEXT • パラメーター・ファイル:以下の内容を最後に追加します。 ※統合Extractと違い、トレイル名などをパラメーター・ファイルに記述するのは仕様らしいです USERIDALIAS srcoracleatp DOMAIN OracleGoldenGate EXTFILE I1 , PURGE TABLE SRC_OCIGGLL.*;
  22. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㉓ Extractの作成(OCI GoldenGate

    ー ADB) 4. 初期ロード用のExtractと、更新用のExtractが追加されていることを確認します。 ※初期ロード用のExtractは、初期読み込みが成功するとステータスが「黄色」になります 変更用Extract 初期ロード用Extract
  23. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㉕ 初期ロード用の配布パスの準備(OCI GoldenGate

    ー MySQL HeatWave) 1. OCIのコンソール画面の「GoldenGate」からHeatWave用のデプロイメントを選択し、 「コンソールの起動」をクリックし、管理者ユーザーoggadminでログインします。 2. ナビゲーションメニューから「管理者」を選択し、「+」ボタンから以下の項目を入力しユーザを発行します。 • ユーザ名:ggsnet • ロール:演算子(英語だとOperator) • タイプ:パスワード • パスワード:任意のパスワードを入力
  24. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㉖ 初期ロード用の配布パスの作成(OCI GoldenGate

    ー ADB) 1. 先程作成した配布パスユーザをADBのデプロイメントに追加します。 2. ナビゲーションメニューから「構成」を選択し、「+」ボタンから以下の項目を入力し資格証明を追加します。 • 資格証明ドメイン:GGNetwork • 資格証明別名:dpuser • ユーザ名:ggsnet • パスワード:HeatWaveデプロイメントでggsnetに指定したパスワードを入力
  25. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㉗ 初期ロード用の配布パスの作成(OCI GoldenGate

    ー ADB) 3. ADBのデプロイメントコンソールから「分散サービス」を選択し、 右上の 「+」ボタンから以下の項目を入力し配布パスを作成します。 • 配布パス名:dpiext • ソース:Extractは何も選択せず、下の段に「I1」と入力 • ターゲット認証方式:ユーザID別名 • ターゲット:wws • ターゲットホスト:HeatWave用のデプロイメントの詳細にあるURLを入力 ※ https:// 以降で、末尾のスラッシュなしで入力する必要があります
  26. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㉘ 初期ロード用の配布パスの作成(OCI GoldenGate

    ー ADB) 3. (続き) • ポート番号:443 • トレイル名:I1 • ドメイン:GGNetwork • 別名:dpuser
  27. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㉚ 初期ロード用のReplicatの作成(OCI GoldenGate

    ー MySQL HeatWave) 1. HeatWave用のデプロイメントコンソール画面に移動し、ナビゲーションメニューから「構成」を選択し、 「接続」ボタンをクリックして、MySQL HeatWaveに接続します。 ※接続できない場合は、ggadminユーザのパスワードが一致していない可能性があります 2. 接続に成功すると、チェックポイント表が追加できるようになります。以下の項目を入力して作成します。 • チェックポイント表名: SRC_OCIGGLL.CHECKTABLE
  28. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㉛ 初期ロード用のReplicatの作成(OCI GoldenGate

    ー MySQL HeatWave) 3. ナビゲーションメニューから「概要」を選択し、「+」ボタンから以下の項目を入力しReplicatを追加します。 • プロセス名:RIL • 資格認証ドメイン:OracleGoldenGate • 資格証明別名:trgmysqlhw • トレイル名:I1 • チェックポイント表:SRC_OCIGGLL.CHECKTABLE • パラメーター・ファイル:最後の行に「MAP SRC_OCIGGLL.*, TARGET SRC_OCIGGLL.*;」を追加
  29. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㉜ 初期ロード用のReplicatの作成(OCI GoldenGate

    ー MySQL HeatWave) 4. 配布パスが通常通りに動いていれば、初期ロード用のデータがターゲットDBに挿入されます。 Replicat(RIL)の「アクション」を選択後、「詳細」を選択、「統計」をクリックします。 ソースDBからターゲットDBのテーブルにデータが挿入されたことが確認できます。
  30. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㉝ 初期ロード用のReplicatの作成(OCI GoldenGate

    ー MySQL HeatWave) 5. ターゲットDBであるMySQL HeatWaveにログインし、データが挿入されていることを確認します。 >>snip<< 51行追加された!
  31. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㉟ 変更用の配布パスの作成(OCI GoldenGate

    ー ADB) 1. ADBのデプロイメントコンソールから「分散サービス」を選択し、 右上の 「+」ボタンから以下の項目を入力し配布パスを作成します。 • 配布パス名:dpcdcext • ソース:「CDCEXT」を選択し、下の段に「C1」と入力 • ターゲット認証方式:ユーザID別名 • ターゲット:wws • ターゲットホスト:HeatWave用のデプロイメントの詳細にあるURLを入力 ※ https:// 以降で、末尾のスラッシュなしで入力する必要があります
  32. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㊱ 変更用の配布パスの作成(OCI GoldenGate

    ー ADB) 1. (続き) • ポート番号:443 • トレイン名:C1 • ドメイン:GGSNetwork • 別名:dpuser 変更用配布パス 初期ロード用配布パス
  33. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㊳ 変更用のReplicatの作成(OCI GoldenGate

    ー MySQL HeatWave) 1. HeatWaveのデプロイメントコンソールに移動し、ナビゲーションメニューから「概要」を選択し、 「+」ボタンから以下の項目を入力しReplicatを追加します。 • プロセス名: RCDC • 資格認証ドメイン:OracleGoldenGate • 資格証明別名:trgmysqlhw • トレイル名:C1 • チェックポイント表:SRC_OCIGGLL.CHECKTABLE • パラメーター・ファイル: 最後の行に「MAP SRC_OCIGGLL.*, TARGET SRC_OCIGGLL.*;」を追加
  34. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㊴ 変更用のReplicatの作成(OCI GoldenGate

    ー MySQL HeatWave) 2. 変更用のReplicat(RCDC)が追加されていることを確認します。 変更用Replicat 初期ロード用Replicat
  35. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㊶ 変更用のデータの追加(ソースDB ー

    ADB) 1. Database ActionsなどでADBに接続し、 SRC_CITYテーブルに10行のレコードを挿入します。
  36. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㊷ 変更用のデータの追加(OCI GoldenGate

    ー MySQL HeatWave) 1. HeatWaveのデプロイメントコンソールに移動し、 Replicat(RCDC)の「アクション」を選択後、 「詳細」を選択、「統計」をクリックします。 2. 10行分のデータが挿入されたことが確認します。
  37. Copyright © 2024 HeatWavejp All Rights Reserved. データ連携の構築手順㊸ 変更用のデータの追加(ターゲットDB ー

    MySQL HeatWave) 1. ターゲットDBであるMySQL HeatWaveにログインし、データが挿入されていることを確認します。 >>snip<< 61行になっている!
  38. Copyright © 2024 HeatWavejp All Rights Reserved. 補足 OCI GoldenGate

    に 23aiバージョンがリリース • AIワークロードの分散ベクトルのサポート、最新のOracle Database 23aiのサポート • ユーザーインターフェースの刷新 • 可観測性と診断の向上 etc... 参考:https://blogs.oracle.com/oracle4engineer/post/ja-ann-goldengate-23ai
  39. Copyright © 2024 HeatWavejp All Rights Reserved. 参考 ◼ Replicate

    data from OCI MySQL Database to Autonomous Data Warehouse https://docs.oracle.com/en/cloud/paas/goldengate-service/amyql/index.html ◼ Oracle Cloud Infrastructure GoldenGate - Manage connections https://docs.oracle.com/en/cloud/paas/goldengate-service/mcjzr/ ◼ OCI GoldenGateを使ってAutonomous DatabaseからMySQL HeatWaveへのデータ連携を試してみた https://qiita.com/ninomiyatsu/items/b0d83446dac181f85fde ◼ OCI GoldenGate(OCI GG) で BaseDB 19c から ADW-S にレプリケーションしてみる。 https://qiita.com/ora_gonsuke777/items/2116a8f92349fe6c3330 ◼ OCI-GoldenGateの分散パスを利用してOracle Databaseのリージョン間レプリケーションを実装する https://qiita.com/ykuma614/items/9a82986c1fe97182104d ◼ Oracle Database Technology Night #54 Oracle Databaseのアップグレードとクラウド移行実践 GoldenGateとReal Application Testingの活用 Oracle Database Technology Night #54 Oracle Databaseのアップグレードとクラウド移行実践
  40. Copyright © 2024 HeatWavejp All Rights Reserved. まとめ ◼ OCI

    GoldenGate は、OCI上のマネージド・サービスであり、複数のデータソース/ターゲット 間で低遅延のデータ・レプリケーションを実現できる ◼ Autonomous DatabaseからHeatWaveへのデータ連携では、GoldenGateのExtractと Replicatプロセスを組み合わせて行う ◼ 具体的な手順としては、まずAutonomous Database側でExtractを設定し、次に HeatWave側でReplicatを設定する ◼ 初期ロード用と変更用に分けて構築することで、スムーズなデータレプリケーションが可能になる ◼ OCI GoldenGate 23ai がリリース