パイプラインおよびレシピ
レシピおよびパイプラインを使用してデータ・レプリケーション・プロセスを作成する方法について説明します。
パイプラインについて
パイプラインは、レシピのインスタンスです。これにより、ソース接続、適用するレプリケーション・アクションのタイプ、およびターゲット接続を選択できるようになります。パイプラインを開始すると、レプリケーション・プロセスをリアルタイムで監視できます。
- 抽出のためのデータベース・オブジェクトの準備
- ハートビート表の作成
- Extractプロセスの作成および実行
- Oracle Data Pumpを使用した初期ロードの実行
- チェックポイント表の作成
- Replicatプロセスの作成および実行
これらのステップは、パイプラインの詳細ページで、パイプラインの初期化フェーズの間に確認できます。
パイプラインは、ホームページとパイプラインページで表示できます。パイプラインを作成する前に、ソース・データベースおよびターゲット・データベースに対して「データベース接続」が構成されていることを確認してください。
詳細は、『Oracle GoldenGate Microservicesドキュメント』の「Extractについて」および「Replicatについて」を参照してください。
レシピについて
レシピとは、データ・レプリケーション手順の迅速化に使用できる、一般的なレプリケーション・シナリオのテンプレートです。
レシピは、一連のデータ・レプリケーション・タスク、またはソース・システムおよびターゲット・システムの間のマッピングを定義するテンプレートです。レシピは、レプリケーション・ソリューションの作成を簡素化および迅速化するのに役立ちます。レシピを使用すると、新しいデータ統合プロジェクトの設定に必要な時間と労力が削減され、異なる環境間で一貫性と信頼性が確保されます。GoldenGate Studioには、次のレシピが含まれています:
- 一方向データベース・レプリケーション: 一方向データ・レプリケーションは、ソース・データベースからのデータ変更が継続的または定期的にターゲット・データベースにコピーされるプロセスですが、その逆も同様です。ターゲットを更新するのはソースのみで、ターゲット・データベースの変更はソースに戻りません。初期ロードを実行し、ターゲット・データベースでソース・データベースと同期され続けていることを確認します。
次のシナリオでは、一方向のデータ・レプリケーションを使用します:
- レポート/分析: プライマリ・トランザクション・データベースに影響を与えずに、問合せと分析を別のレポート/BIデータベースにオフロードします。
- データ移行: できるだけダウンタイムが少ないレガシー・システムから最新のシステムにデータを移動します。
- ディザスタ・リカバリ/バックアップ: フェイルオーバー/フェイルバック・シナリオの最新のスタンバイ・インスタンスを維持します。
- データ配信: 本社から支店データベースにデータを送信します。
- アクティブ-アクティブ・データベース・レプリケーション: アクティブ-アクティブ・レプリケーションは、2つ以上のデータベースが読取り操作と書込み操作を同時に受け入れることができるデータ・アーキテクチャで、変更はほぼリアルタイムですべてのサイト間で自動的に同期されます。これにより、継続的な可用性とシームレスなフェイルオーバーが可能になり、分散ワークロードがサポートされます。ターゲットに対してソース・データベースの初期ロードを実行してから、変更イベントを両方向に適用してデータベースを同期された状態に保ちます。
次のシナリオでアクティブ-アクティブ・レプリケーションを使用します:
- シームレスなディザスタ・リカバリと高可用性が必要な場合、すべてのサイトでトラフィックを処理し、即時フェイルオーバーをサポートできます。
- ワークロードを地理的に分散した複数のデータ・センターに分散させることで、システム全体のパフォーマンスとレジリエンスを向上させます。
-
データベース移行: Oracleツールおよびベスト・プラクティスを使用して、システムまたは環境間でデータを転送するためのステップバイステップのフレームワークを提供します。これには通常、計画、データ評価、抽出、変換、ロード、検証および移行後のサポートが含まれています。データベース移行レシピでは初期ロードが実行され、ターゲット・データベースにスイッチオーバーする準備ができるまで変更イベントが適用されます。
ノート:
GoldenGate Studioでは、Oracle AI Database (Oracle Autonomous AI Databaseを含む)からMySQLデータベースへのデータ移行はサポートされません。データベースの移行は、ある環境から別の環境へのデータベース・オブジェクトおよびデータの1回かぎりの一括移動または段階的な一括移動を実行する場合に必要です(たとえば、クラウドの導入時やハードウェアのリフレッシュ時)。データ移行レシピを使用すると、オンラインおよびオフラインのデータベース移行が容易になります:
- オフライン: 移行中にソース・データベースが更新されないように、ソース・アプリケーションをオフラインにする必要があります。オフライン移行は、小規模なデータベースの場合や、停止時間があっても問題ない場合に最適です。データとメタデータは、ソース・データベースからエクスポートされ、ターゲット・データベースにインポートされます。オフライン移行は、クリティカルでない小規模なデータベース環境での開発およびテストに最適です。
ノート:
MySQLでは、一方向レシピとデータ移行レシピのみがサポートされています。- オンライン: 移行中もソース・システムをオンラインのままにできます。オンライン移行は、大規模なデータベースの場合や、停止時間があると問題になるクリティカルなアプリケーションの場合に最適です。データとメタデータの初期スナップショットがソース・データベースからエクスポートされ、ターゲット・データベースにインポートされた後、変更点が継続的に同期されます。
- ZeroETLミラー: ZeroETLは、従来のバッチ指向ETLパイプラインを排除するデータ統合アプローチです。従来のETL (抽出、変換、ロード)プロセスを必要とせずに、運用データベースから分析またはレポート環境へのほぼリアルタイムのレプリケーションを提供します。このレシピは、アーキテクチャを簡素化し、最小限の待機時間で最新の分析データを提供します。
ZeroETLは、リアルタイム・ダッシュボード、インスタント・レポート、レガシー・オンプレミス・データベースの他のエンタープライズ・アプリケーションとの統合、シームレスなクラウドまたはオンプレミスの移行など、新しい運用データからの実用的なインサイトが重要なシナリオに最適です。
ノート:
検出された順序について警告が発生した場合、データベースで生成された順次値は、レプリケートしないでください。値の範囲は、重複しないように各システムで異なっている必要があります。たとえば、2つのデータベースが存在する環境では、一方のサーバーで偶数値を生成し、他方で奇数値を生成します。n個のサーバーが存在する環境では、各キーを異なる値で開始し、環境内のサーバーの数を単位として値を増分します。この方法は、すべてのタイプのアプリケーションまたはデータベースに使用できるわけではありません。アプリケーションが対応している場合、値に位置識別子を追加して強制的に一意性を確保できます。
パイプラインの作成
GoldenGate Studioでのパイプラインの作成方法について説明します。
始める前に
パイプラインを作成する前に、ソース・データベースおよびターゲット・データベースの接続を作成してテスト済であることを確認します。Oracle AI Databaseの場合、データベース構成は、パイプラインの作成時に「ソースの構成」または「ターゲットの構成」ステップで実行されます。MySQLの場合、パイプラインを作成する前にデータベースを構成する必要があります。「MySQLデータベース接続の作成」の「始める前に」の項で、MySQLの前提条件を確認します。
パイプラインのソース接続またはターゲット接続としてOracle Autonomous AI Databaseを使用する場合は、次を実行する必要があります:
- Oracle Autonomous AI Databaseを構成します:
-
ウォレットをダウンロードします: Oracle Cloud Infrastructureのインスタンスの詳細ページからOracle Autonomous AI Databaseウォレットをダウンロードします。これは接続を作成するときにGoldenGate Studioにアップロードします(まだアップロードしていない場合)。
-
TNS別名を構成します: Oracle Autonomous AI Database接続のウォレット内で
tnsnames.oraの別名を使用します。 -
クライアント資格証明を確認します: ユーザー名およびパスワードが使用可能で、GoldenGateレプリケーション操作の権限があることを確認します。
-
Autonomous DatabaseファイアウォールおよびVNetルールを検証します: GoldenGate StudioがOracle Autonomous AI Databaseに到達できるように、適切なネットワーク・アクセスを確認します。
ノート:
ウォレットおよび資格証明の管理がOracleセキュリティ・ポリシーに準拠していることを確認します。 -
-
ターゲット・データベースへのアクセス: ターゲット・データベース(Oracle Autonomous AI Databaseまたはその他のサポートされているデータベース)への接続を構成および検証します。
-
ユーザー別名の構成:
-
ユーザー別名を使用して資格証明ストアを作成します。 「Oracle Autonomous Database用のExtractの構成」のステップ3から6を実行します。ユーザー別名は、ソース・データベースおよびターゲット・データベースのセキュアな資格証明を参照します。
-
GoldenGate資格証明ストアにユーザー別名を登録し、Oracle Autonomous AI Database接続でパイプラインを作成するときはGoldenGate Studioにこのユーザー別名を入力して、プレーン・テキストの資格証明を保存しないようにします。
ノート:
ユーザー別名が正しく機能しているかどうかを確認するには、GoldenGateユーザー・インタフェースに移動し、最初にそこでデータベース接続をテストします。『Oracle GoldenGate Microservicesドキュメント』の「Autonomous Databaseからの取得するための前提条件」を参照してください。
-
-
データベース権限: GoldenGate操作をサポートするには、ソース側およびターゲット側で必要なデータベース権限が必要です(通常は
SELECT、FLASHBACK、DBAレベルの権限など)。ノート:
MySQLの移行およびレプリケーション・レシピが機能するには、必要なデータベースおよび表へのアクセス権を付与する権限が必要です。次のSQLコマンドを実行して、すべての権限を付与します:GRANT ALL PRIVILEGES ON *.* TO 'username'@'host' WITH GRANT OPTION; FLUSH PRIVILEGES;
パイプラインの作成
パイプラインの開始後、各パイプラインの詳細なステータスおよびログを表示できます。これにより、パイプライン作成プロセスが失敗した場合にエラーを識別してトラブルシューティングできます。
SYSユーザーでのソースおよびターゲット・データベース接続の検証
このステップは、パイプラインの作成中にソースまたはターゲット(あるいはその両方)のデータベース接続の検証が失敗した場合にのみ必要です。
ノート:
GoldenGate Studioでは、このリリースのOracleデータベース・ソースおよびターゲットの構成オプションのみがサポートされています。他のテクノロジの場合は、データベースを手動で構成する必要があります。
SYS/SYSDBAユーザーを使用してソース・データベース接続を検証するには、次のステップが必要です。
-
ソース接続の検証ステップが失敗した場合は、ソースの検証画面で「次」をクリックします。ソースの構成画面が表示されます。
-
ソースの構成画面で、次の図に示すように、
SYSユーザーまたはSYSDBAロールを持つユーザーの資格証明を入力します:
-
次のオプションのいずれかを選択します。
ノート:
Oracle CDBの場合、SQL準備スクリプトにはCDB (コンテナ・データベース)とPDB (プラガブル・データベース)の両方への接続が必要です。このスクリプトは、CDBとPDBの両方に必要な設定を自動的に構成します。スクリプトはCDBレベルで実行する必要があります。ALTER DATABASEコマンドでデータベースの再起動が必要な場合、スクリプトによって通知が送信されます。このスクリプトを実行するには、SYSユーザー権限が必要です。-
「分析の実行」をクリックしてシステム分析を実行し、GoldenGate Studioのデータベースを準備するために必要な推奨SQLスクリプトを確認します(データベース管理者権限が必要です)。
このオプションは、データベースがすでに構成されており、追加の構成を必要としない場合に使用でき、必要なスクリプトをインタフェースから直接実行して、設定プロセスを合理化できます。 -
SQLのダウンロードをクリックして、構成に必要なSQLコマンドを生成するスクリプトを取得します。
このオプションは、アーカイブ・ログの有効化、
stream_pool_sizeの設定、またはOracle Database 19cのGoldenGateレプリケーションの構成を手動で構成する必要があるデータベースで使用できます。なぜなら、これらのタスクではデータベースの再起動が必要になる場合があるからです。これらのインスタンスでは、続行する前にまずデータベースを構成する必要があります。
-
-
ターゲット検証に失敗した場合は、「次」をクリックします。次の図に示すように、「ターゲットの構成」画面が表示されます:

-
SYS/SYSDBAユーザーを使用してターゲット・データベース接続を検証するには、ステップ3のタスクに従います。
パイプラインの構成
パイプラインは、構成する前に作成済である必要があります。
パイプラインを構成するには:
-
マッピングで、レプリケートするソース・データベース・スキーマおよび表を確認して選択できます。
ノート:
接続の作成時に入力したユーザー名は、マッピング選択用のパイプラインの「マッピング」ページに表示されません。「マッピング」ツリー・ビューを使用してスキーマまたは表を選択または選択解除した後は、常に「マッピング・ルール」リストに追加されたルールを再度チェックします。これらは、Oracle GoldenGateによって実行される処理に関する正しい情報源です。

ノート:
一方向データベース・レプリケーションでは、ターゲット・スキーマおよび表は、ターゲットに存在する場合のみ表示され、存在しない場合は「見つかりません」と表示されます。次の図は、一方向のデータ・レプリケーション・パイプラインを示しています:

-
「マッピング」タブを使用すると、次のことができます:
- 編集(鉛筆アイコン)をクリックして、ターゲット・スキーマまたは表の名前を変更します。これにより、レプリケーションの指定内容が、名前変更されたスキーマおよび表へと変わります。
- スキーマとそのすべての表を含めます。これにより、将来そのスキーマに追加される表も、暗黙的に含まれレプリケートされるようになります。
- スキーマを含めます(そのすべての表を含めない)。含まれない表はレプリケートされませんが、将来そのスキーマに追加される表は、暗黙的に含まれターゲットにレプリケートされます。
- スキーマは除外しますが、その表は含めます。将来そのスキーマに追加される表は、含まれません。
- スキーマ全体とそのすべての表を除外します。
ソース・スキーマおよび表を選択または選択解除するか、ターゲット・スキーマまたは表を編集すると、ルールがマッピング・ルールに追加されます。ノート:
Autonomous AI Databaseでは、DCAT_ADMIN、RMAN$CATALOG、GGADMIN、ADBSNMP、ADB_APP_STOREなどのシステム・スキーマが表示される場合があります。マッピングから手動で除外することを検討してください。 -
アクティブ-アクティブ・レプリケーションの場合は、「マッピング」画面に「競合解決」列が表示されます。

アクティブ-アクティブ・パイプラインでは、自動競合検出および競合解決(ACDR)が、まだ有効になっていない表に対して有効になります。ACDRがすでに有効になっている場合、GoldenGate Studioは構成を変更しません。
自動競合検出および解決 (ACDR)を構成するには:
-
ACDRを構成する必要があるスキーマの横にある「編集」をクリックします。
-
表マッピングの編集パネルで、自動競合検出および解決を選択します。
-
「タイムスタンプ」で、最新の変更内容を優先するか最初の変更内容を優先するかを選択します。
-
競合を解決するために変更内容を結合する必要がある場合はデルタ解決を選択してから、使用する列を選択します。たとえば、製品在庫に関する更新です。
-
「適用」をクリックします。
警告:
GoldenGate Studioでは、アクティブ-アクティブ・パイプラインの開始後の、新しい表の追加やACDRタイプの変更はサポートされていません。どうしても必要な場合以外は、次のいずれかを実行してください。-
新しい表を追加した新しいパイプラインを作成、構成および開始します。
-
GoldenGate Studioコンソールで、次のようにします:
-
パイプラインを停止します。
-
新規表を外部で作成します。
-
「マッピング」で、そのスキーマを展開し、新しい表を選択します。
-
「オプション」の「拡張オプション」の「Replicat」にあるDMLエラー発生時のアクションで「廃棄」を選択します。
-
パイプライン構成を保存してから、そのパイプラインをもう一度開始します。
-
ノート:
ACDRは、キーのない表に対しては、自動的には有効になりません。
ノート:
ACDRの有効化中にパイプラインを停止する場合、またはACDRの有効化ステップでエラーが発生した場合、選択した表に対してACDRは有効化されません。
-
-
マッピング・ルールでは、ルールを確認、追加、削除および順序変更できます。

追加の考慮事項:
-
除外ルールは包含ルールより優先されます。
-
ルールを削除するには、アクション(省略記号のアイコン)をクリックし、削除を選択します。
-
ルールを並べ替えるには、アクション(省略記号のアイコン)をクリックしてから、優先度を上げるまたは優先度を下げるを選択します。
-
新しいルールを追加するには、ルールの追加をクリックします。ルールの作成時には、次の特殊文字を使用できます:
-
任意の数の文字を示すワイルドカードとして、アスタリスク(*)
-
アンダースコア(_)
-
スペース( )
-
スペースを含むスキーマ名または表名を囲むためや、大/小文字の区別が必要な場合に、二重引用符(")。
-
-
個々のルールはグループ・ルールより優先されます。
-
すべて削除を選択すると、リスト内のすべてのルールが削除されます。
ノート:
Studio 23.26.1.X.Y.Z以降では、「マッピング・ルール」タブから*.*マッピングを追加すると、個々のスキーマ・マッピングに変換されます。パイプラインの作成後に追加された新しいスキーマは、「マッピング」ページまたは「マッピング・ルール」ページから手動でマップする必要があります。
-
-
オプションで、限定された一連のGoldenGateパラメータを構成できます:
-
既存のスキーマまたは表(あるいはその両方)の初期ロード
ノート:
- 初期ロードにデータベース・リンクを使用する場合は、ソース・ウォレットURIパラメータ値を指定する必要があります。
- 初期ロードにオブジェクト・ストレージを使用する場合は、オブジェクト・ストレージ・バケットURI値を指定する必要があります。
-
データ定義言語(DDL)のレプリケート
-
初期ロード(データ・ポンプ)、ExtractまたはReplicatについての詳細オプション
ノート:
パイプラインを管理できるかどうかに影響するため、基礎となるパラメータ・ファイルに変更を加えないでください。同様に、GoldenGate Studio コンソールを使用している場合はReplicatタイプを変更しないでください。
-
-
保存をクリックして構成設定を保存します。
-
パイプラインを構成した後は、「開始」をクリックしてそれを実行します。
初期化手続き、レプリケーション・プロセスにおける各ステップのステータスと進行状況、および各ステップの完了にかかる時間を確認できます。
-
初期化が完了すると、「ランタイム」ページに、ターゲットにレプリケートされたソース・データベースに対するデータ取得操作が表示されます。
パイプラインは、停止されるまで継続的に実行されます。