1 Oracle GoldenGate for Big Dataのインストール
この章では、Oracle GoldenGate for Big Dataの新規インスタンスのインストール方法を説明します。
トピック:
1.1 サポート対象の理解
Oracle GoldenGate for Big Dataは特定の構成をサポートし、ハンドラは明確に定義されたソフトウェア・バージョンと互換性があり、多くのサポート・トピックがあります。この項では、関連するサポート情報を示します。
トピック:
1.1.1 動作保証要件とシステム要件の確認
動作保証マトリックスとシステム要件のドキュメントを相互に確認して、現在の環境が必要なインストール要件を満たしていることを確認することをお薦めします。
-
現在の環境が動作保証要件を満たしていることを確認します。
サポートされているハードウェアおよびソフトウェア構成で製品をインストールしていることを確認します。「Oracle Fusion Middleware Supported System Configurations」ページのリリースの動作保証に関するドキュメントを参照してください。
オラクル社では、動作保証されたシステムおよび環境すべてで製品のパフォーマンスをテストおよび検証しています。新しい動作保証情報がリリースされるたびに、動作保証に関するドキュメントにすぐに追加されます。新しい動作保証情報は随時リリースされる可能性があります。そのため、動作保証ドキュメントはドキュメント・ライブラリの外部に保持され、Oracle Technology Networkで利用できます。
-
システム要件ドキュメントを使用して動作保証を確認します。
「Oracle Fusion Middleware Supported System Configurations」のドキュメントを使用して、動作保証要件が満たされていることを確認することをお薦めします。たとえば、この動作保証に関するドキュメントに、ご使用の製品が64ビットOracle Linux 6.5上にインストールすることが動作保証されていることが記載されている場合、このドキュメントを使用して、ご使用のシステムが必要な最小仕様を満たしていることを確認します。これには、ディスク容量、使用可能なメモリー、特定のプラットフォームのパッケージおよびパッチ、その他のオペレーティング・システム固有の要件などが含まれます。システム要件は、将来変更される可能性があります。そのため、システム要件ドキュメントはドキュメント・ライブラリの外部に保持され、Oracle Technology Networkで利用できます。
-
複数の製品間の相互運用性を確認します。
同一リリースまたは混合リリースから相互に複数のFusion Middleware製品をインストールおよび実行する方法の詳細は、Oracle Fusion Middleware相互運用および互換性の理解の「Oracle Fusion Middleware Supported System Configurations」を参照してください。
Oracle GoldenGate for Big Dataハンドラと、ディストリビューション、データベース・リリース、ドライバなどの様々なデータ・コレクションとの互換性は、動作保証に関するドキュメントに含まれています。
1.1.3 その他のサポートに関する考慮事項
この項では、Oracle GoldenGate for Big Dataのハンドラのその他のサポートに関する考慮事項について説明します。
- プラガブル・フォーマッタ - サポート
-
ハンドラは、プラガブル・フォーマッタを次のようにサポートします。
- HDFSハンドラは、すべてのプラガブル・フォーマッタをサポートします。
-
プラガブル・フォーマッタは、HBaseハンドラには適用されません。データは、プロプライエタリなHBaseクライアント・インタフェースを使用してHBaseにストリーミングされます。
-
Kafkaハンドラは、すべてのプラガブル・フォーマッタをサポートします。
-
Kafka Connectハンドラは、プラガブル・フォーマッタをサポートしていません。Kafka Connectのデータ・コンバータを使用してデータをJSONまたはAvroに変換できます。
-
Kinesis Streamsハンドラは、Oracle GoldenGate for Big Dataユーザー・ガイドの「プラガブル・フォーマッタの使用」トピックで説明されているすべてのプラガブル・フォーマッタをサポートします。
-
Cassandra、MongoDBおよびJDBCハンドラは、プラガブル・フォーマッタを使用しません。
- Extractを使用するJava配信
-
Extractを使用したJava配信はサポートされていません。Java配信のサポートは、Replicatプロセスの使用でのみサポートされています。Replicatにより、パフォーマンスが向上し、チェックポイントのサポートが改善され、トランザクションのグループ化の制御が改善されます。
- MongoDBハンドラ - サポート
-
-
このハンドラのみが、ソース表から一意の行を複製できます。ソース表に定義済の主キーがなく、重複行がある場合、MongoDBターゲットに重複行を複製すると、重複キー・エラーが発生し、Replicatプロセスが異常終了します。
-
欠落した更新および削除は検出されないため、無視されます。
-
シャード・コレクションでテストされていません。
-
ミリ秒の精度の日時データ型のみをサポートします。証跡からの値でマイクロ秒またはナノ秒の精度のものは、ミリ秒の精度に切り捨てられます。
-
証跡で
timezone
を含むdatetime
データ型は、サポートされていません。 -
BSONドキュメントの最大サイズは16MBです。証跡レコード・サイズがこの制限を超えると、ハンドラはレコードを複製できません。
-
DDL伝播はありません。
-
切捨て操作はありません。
-
- JDBCハンドラ - サポート
-
-
JDBCハンドラは汎用JDBC APIを使用します。つまりJDBCドライバが実装されたターゲット・データベースは、このハンドラを使用できる必要があります。JDBC APIをサポートする様々なデータベースが無数にあるため、OracleではすべてのターゲットのJDBCを動作保証できるわけではありません。Oracleでは、次のRDBMSターゲットのJDBCハンドラが動作保証されています。
- Oracle
- MySQL
- Netezza
- Redshift
-
ハンドラは
REPERROR
およびHANDLECOLLISIONS
パラメータを使用したReplicatをサポートします。『Oracle GoldenGateリファレンス』を参照してください。 -
Redshift JDBCドライバを介して取得されたデータベース・メタデータには、既知の制約事項があります。『Oracle GoldenGate for Big Dataリリース・ノート』を参照してください。
Replicatパラメータ・ファイルのRedshiftターゲット表名は、小文字で、二重引用符で囲む必要があります。次に例を示します。
MAP SourceSchema.SourceTable, target “public”.”targetable”;
-
DDL操作はデフォルトで無視され、
WARN
レベルで記録されます。 -
調整Replicatは、シリアルではなくパラレルでトランザクションを適用するマルチスレッド・プロセスです。個々のスレッドは割り当てられたワークロードに対するフィルタリング、マッピング、変換、SQL構築およびエラー処理をすべて扱います。コーディネータ・スレッドは依存関係を示すようにスレッド間のトランザクションを調整します。これにより、データベース固有のルールに基づいた行ロック、ブロック・ロックまたは表ロックの問題が原因で同時に同じオブジェクトで特定のDMLが発生することを回避する同期的な方法で、DMLが適用されます。データベース・ロックの問題がある場合は、調整Replicatのパフォーマンスが非常に遅いか、一時停止している可能性があります。
-
- DDLイベント処理
-
TRUNCATE TABLE
DDL文のみがサポートされています。他のすべてのDDL文(CREATE TABLE
、CREATE INDEX
、DROP TABLE
など)は無視されます。TRUNCATE
文は、次のいずれかの方法で使用できます。-
DDL文では、
TRUNCATE TABLE
、ALTER TABLE TRUNCATE PARTITION
およびその他のDDLTRUNCATE
文。これは、DDL
パラメータを使用します。 -
スタンドアロン
TRUNCATE
サポート。TRUNCATE TABLE
のみが含まれます。これは、GETTRUNCATES
パラメータを使用します。
-
1.2 インストールの準備
正しいバージョンのJavaがインストールされ、環境変数が正しく設定および構成されていることを確認して、Java環境を準備します。
1.2.1 インストールの概要
この項では、インストールの内容およびOracle GoldenGateアダプタで使用されるOracle GoldenGateインスタンスの概要について説明します。
1.2.1.1 インストールZIPファイルの内容
Oracle GoldenGate for Big DataのインストールZIPファイルの内容は、次のとおりです。
-
Oracle GoldenGate Javaアダプタ
-
ビッグ・データのターゲットにデータをストリーミングするOracle GoldenGateのバージョン。このバージョンは、データベース固有ではなく、プラットフォーム依存であるため、汎用のラベルが付いています。
1.2.1.2 Oracle GoldenGateの汎用ビルドの使用
JMS取得の場合、JavaアダプタはOracle GoldenGateの汎用ビルドで実行する必要があります。ただし、証跡データをターゲットに配信するのにアダプタを使用する場合、汎用ビルドは不要です。この場合、Javaアダプタを任意のデータベース・バージョンのOracle GoldenGateで使用できます。
1.2.1.3 Oracle GoldenGateのビッグ・データ・インスタンスのカスタム・ビルドを使用する際の考慮事項
Oracle GoldenGateのビッグ・データ・インスタンスのカスタム・ビルドをインストールする場合、メリットとデメリットの両方があります。また、Big Dataのリリースと互換性のあるOracle GoldenGateのリリースにも制限があります。
メリット
-
非汎用のインスタンスでは、メタデータのデータベースにログインするようにExtractを構成できます。これにより、ソース・データベースDDLと同期する必要のあるソース定義ファイルを使用する必要がなくなります。
-
また、データベースの取得およびJMS配信を同じサーバーで実行する場合に、個別の2つのバージョンのOracle GoldenGateを管理する必要もありません。
デメリット
-
Oracle GoldenGateコア・インスタンスにパッチを適用する必要がある場合は、パッチを適用した新しいOracle GoldenGateのインストールにBig Dataをコピーする必要もあります。
-
Oracle GoldenGate for Big Dataは、汎用バージョンのOracle GoldenGateコアでのみテストおよび動作保証されます。コアの新しいパッチにより、互換性がなくなる場合があります。
制限事項
-
ビッグ・データ・ターゲットに書き込むReplicatモジュールは、Oracle GoldenGateの汎用ディストリビューションでのみ使用できます。
-
Oracle GoldenGate for Big Dataは、Oracle GoldenGateインスタンスと同じメジャー・リリースでインストールできます。したがって、11.1.xリリースのBig Dataは、11.1.xリリースのOracle GoldenGate (11.2.xの場合は11.2.x、12.1.2.xの場合は12.1.2.x)にのみインストールできます。
-
Oracle GoldenGate for Big Dataリリース12.3.0.xでは、Oracle GoldenGateリリース12.2.x以前の証跡ファイルを読み取ります。Oracle GoldenGate for Big Dataリリース12.3.1.xでは、Oracle GoldenGateリリース12.3.x以前の証跡ファイルを読み取ります。
-
これは、VAMをロードできるExtractのバージョンのみであるため、汎用ビルドはJMS取得で使用する必要があります。
-
DEFGEN
ユーティリティは、Big Dataに付属していません。ソース定義を生成するには、データベース・タイプに専用に構築されたOracle GoldenGateのバージョンが必要です。
1.2.2 Oracle GoldenGate for Big Dataのダウンロード
Oracle GoldenGate for Big Dataには、Windows版、Linux版、UNIX版があります。ダウンロードするには、最初にOracleサポート・サイトにアクセスし、使用するオペレーティング・システムおよびアーキテクチャに利用できるパッチがあるかどうかを確認します。
ノート:
インストールに含まれる汎用ビルドを使用しない場合は、ダウンロードするOracle GoldenGate Big Dataのビルドのメジャー・リリースが、一緒に使用するOracle GoldenGateインスタンスのメジャー・リリースに一致する(互換性がある)ことを確認します。
-
http://support.oracle.com
に移動します。 -
Oracle IDとパスワードでサインインします。
-
Patches and Upgrades・タブを選択します。
-
「検索」タブで「製品またはファミリ 」をクリックします。
-
「Product」フィールドで、「Oracle GoldenGate for Big Data」と入力します。
-
「リリース」ドロップダウン・リストから、ダウンロードするリリース・バージョンを選択します。
-
次のフィールドに「Platform」がデフォルトで表示されていることを確認したら、ドロップダウン・リストからプラットフォームを選択します。
-
最後のフィールドは空のままにします。
-
「Search」をクリックします。
-
拡張パッチ検索結果リストで、指定した基準を満たす使用可能なビルドを選択します。
-
ファイルの「Download」ダイアログ・ボックスで、ZIPファイルをクリックしてダウンロードを開始します。
利用可能なパッチがサポート・サイトにない場合は、リリースのダウンロード用のOracle配信サイトにアクセスします。
1.2.3 Javaのインストール
Oracle GoldenGate for Big Dataは、Java 1.8で動作保証されています。Oracle GoldenGate for Javaをインストールおよび実行する前に、Java (JDKまたはJRE)バージョン1.8をインストールする必要があります。Java Runtime Environment (JRE)または完全なJava Development Kit (JREに付属)を使用できます。
1.2.4 ディレクトリ構造
次の表は、インストール・ファイルを解凍してサブディレクトリを作成した場合のサブディレクトリおよびファイルを含むサンプルです。次の表記規則が使用されています。
-
サブディレクトリは、角カッコ([])で囲まれてています。
-
レベルは、パイプとハイフン(|
-
)で示されます。 -
内部の表記は、変更できない読取り専用のディレクトリを示します。
-
テキスト・ファイル(
*.txt
)はリストに含まれていません。 -
Defgen、Logdump、KeygenなどのOracle GoldenGateユーティリティは、リストには含まれていません。
表1-1 サンプルのインストール・ディレクトリ構造
ディレクトリ | 説明 |
---|---|
[gg_install_dir] |
|
|-ggsci |
プロセスの起動。停止および管理に使用されるコマンドライン・インタフェース。 |
|-mgr |
Managerプロセス。 |
|-extract |
Javaアプリケーションを起動するExtractプロセス。 |
|
Javaアプリケーションを起動するReplicatプロセス。 |
|-[UserExitExamples] |
サンプルのCプログラミング言語ユーザー・イグジット・コードの例。 |
|-[dirprm] |
ユーザーによって作成されるすべてのパラメータ・ファイルおよびプロパティ・ファイルを保持するサブディレクトリ。例: javaue.prm javaue.properties jmsvam.prm jmsvam.properties ffwriter.prm |
|-[dirdef] |
証跡のメタデータを定義するソース定義ファイル(
|
|-[dirdat] |
VAM Extractによって生成、またはユーザー・イグジットExtractによって読み取られる証跡ファイルを保持するサブディレクトリ。 |
|-[ |
ログおよびレポート・ファイルを保持するサブディレクトリ。 |
|-[dirchk] |
Internal チェックポイント・ファイルを保持するサブディレクトリ。 |
|-[dirpcs] |
Internal 処理ステータス・ファイルを保持するサブディレクトリ。 |
|-[dirjar] |
Internal Oracle GoldenGate Monitor jarファイルを保持するサブディレクトリ。 |
|-[ggjava] |
Internal Java jarのインストール・ディレクトリ。読取り専用のため、変更しないでください。 |
|-|-ggjava.jar |
クラス・パスおよび依存性を定義するメインのJavaアプリケーションjar。 |
|-|-[resources] |
すべての
|
|-ggjava_vam.dll |
VAM共有ライブラリ。UNIXでは |
|
Replicatベースの配信プロセスで使用されます。これは、UNIXでは |
|-. . . |
インストールに含まれるか、後で作成されるその他のサブディレクトリおよびファイル。 |
1.2.5 環境変数の設定
Oracle GoldenGate for JavaのJava環境を構成する手順:
-
Java Runtimeを検索できるように
PATH
環境変数を構成する必要があります。 -
共有(動的にリンクされた) Java仮想マシン(JVM)ライブラリも特定する必要があります。
Windowsでは、これらの環境変数をシステム変数として設定し、Linux/UNIXでは、グローバルまたはOracle GoldenGateプロセスを実行しているユーザーに設定する必要があります。Windows、UNIXおよびLinuxでこれらの環境変数を設定する例を、次以降の項で示します。
ノート:
バージョンは2つあり、1つはJAVA_HOME/.../client
、もう1つはJAVA_HOME/.../server
にあります。パフォーマンスの改善のために、サーバー・バージョンが利用可能な場合は使用します。Windowsでは、(JDKではなく) JREのみがインストールされている場合に、クライアントJVMがそこに存在する可能性があります。
1.2.5.1 Linux/UNIX上のJava
PATH
でJREを特定できるように環境を構成し、システムの適切な環境変数を使用してJVM共有ライブラリを構成します。たとえば、Linux (およびSolaris)では、次のように、JVM共有ライブラリを格納するディレクトリが含まれるようにLD_LIBRARY_PATH
を設定します(sh/ksh/bash
)。
ノート:
AIXプラットフォームでは、LIBPATH=
を設定します。HP-UX IA64プラットフォームでは、SHLIB_PATH=
を設定します。
例1-1 LinuxでのJavaのパスの構成
export JAVA_HOME=/opt/jdk1.8 export PATH=$JAVA_HOME/bin:$PATH export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64/server:$LD_LIBRARY_PATH
この例では、ディレクトリ$JAVA_HOME/jre/lib/i386/server
にファイルlibjvm.so
およびlibjsig.so
が含まれるようにしてください。JVMライブラリを格納する実際のディレクトリは、オペレーティング・システムと、64ビットJVMを使用しているかどうかによって異なります。
次の例のように、コマンド・プロンプトを開いて、Javaバージョンをチェックし、環境設定を確認します。
$ java -version java version "1.8.0_92" Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
1.2.5.2 Windows上のJava
Javaをインストールしたら、JREおよびJVM DLL (jvm.dll
)を特定できるようにPATH
を構成します。
例1-2 WindowsでのJavaのパスの構成
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0 set PATH=%JAVA_HOME%\bin;%PATH% set PATH=%JAVA_HOME%\jre\bin\server;%PATH%
前述の例では、ディレクトリ%JAVA_HOME%\jre\bin\server
にファイルjvm.dll.
が含まれるようにしてください。
次の例のように、コマンド・プロンプトを開いて、Javaバージョンをチェックし、環境設定を確認します。
C:\> java -version java version "1.8.0_92" Java(TM) SE Runtime Environment (build 1.8.0_92-b14))
1.3 インストール・ステップ
次のステップを実行して、Oracle GoldenGate for Big Dataをインストールします。
ノート:
実行時にJVMを特定する場合に環境変数の問題をチェックする手順:
-
Windowsの場合は
GETENV(PATH)
パラメータ、UNIXの場合はGETENV(LD_LIBRARY_PATH)
パラメータをReplicatパラメータ・ファイルに追加します。 -
Replicatプロセスを起動します。
-
GGSCIコマンド
SEND
REPLICAT
group_name
REPORT
を使用して、レポートの出力をチェックします。
1.4 Oracle GoldenGate for Big Dataの設定
ビッグ・データ・ターゲットとのOracle GoldenGate for Big Data統合を設定するために実行する必要のある様々なタスク。
トピック:
1.4.1 Java Runtime Environmentの設定
Oracle GoldenGate for Big Data統合は、実行時にJava仮想マシンのインスタンスを作成します。Oracle GoldenGate for Big Dataには、最低でもOracle Java 8 Java Runtime Environment (JRE)をインストールする必要があります。
Java 8のインストール・ディレクトリを指すようにJAVA_HOME
環境変数を設定することをお薦めします。また、Java配信プロセスでは、Java共有ライブラリのlibjvm.so
およびlibjsig.so
をロードする必要があります。これらのライブラリは、JREの一部としてインストールされます。これらの共有ライブラリの場所を解決する必要があり、動的なライブラリを解決するように設定された適切な環境変数を、実行時にロードできます(つまり、LD_LIBRARY_PATH
、PATH
またはLIBPATH
)。
1.4.2 Oracle GoldenGateプロパティ・ファイルについて
Oracle GoldenGate Java Deliverのユーザー・イグジット(Oracle GoldenGate Javaアダプタとも言う)を実行するために必要なOracle GoldenGateプロパティ・ファイルが、2つあります。ビッグ・データ統合を含むJava統合をホストするOracle GoldenGate Java Deliveryです。いずれかのプロセスを実行するには、Replicatプロパティ・ファイルが必要です。Replicatファイル名に必要な命名規則は、process_name.
prm
です。Replicatプロパティ・ファイルでのエグジット構文には、Javaアダプタ・プロパティ・ファイルの名前と場所を指定します。Javaアダプタの構成プロパティにGoldenGate for Big Data統合が含まれるのは、Javaアダプタ・プロパティ・ファイルです。Oracle GoldenGate for Big Data統合を実行するには、ReplicatとJavaアダプタのプロパティ・ファイルが必要です。
あるいは、デフォルト構文process_name.
properties
を使用しても、Javaアダプタ・プロパティは解決できます。Javaアダプタ・プロパティ・ファイルのデフォルトの命名を使用すると、Javaアダプタ・プロパティ・ファイルの名前をReplicatプロパティ・ファイルから省略できます。
Oracle GoldenGate for Big Data統合のプロパティ・ファイルの例は、次のディレクトリのサブディレクトリにあります。
GoldenGate_install_dir
/AdapterExamples/big-data
1.4.3 トランザクションのグループ化
Oracle GoldenGate for Big Data統合でパフォーマンスを向上させる主な方法は、トランザクションのグループ化を利用する方法です。トランザクションのグループ化では、複数のトランザクションの操作をグループ化し、1つの大きいトランザクションにまとめます。大きいグループにまとめられたトランザクションを実行したほうが、通常は、小さい個別のトランザクションを実行するより効率的だからです。「Replicatによる実行」で説明されているように、トランザクションのグループ化は、Replicatプロセスで可能です。
1.5 Oracle GoldenGate for Big Dataの構成
この項では、Oracle GoldenGate for Big Dataのハンドラの構成方法について説明します。
トピック:
1.5.1 Replicatによる実行
この項では、Oracle GoldenGate ReplicatプロセスでJavaアダプタを実行する方法について説明します。内容は次のとおりです。
トピック:
1.5.1.1 Replicatの構成
Javaアダプタで仕様するReplicatプロセス・プロパティ・ファイルの構成方法の例を次に示します。
REPLICAT hdfs TARGETDB LIBFILE libggjava.so SET property=dirprm/hdfs.properties --SOURCEDEFS ./dirdef/dbo.def DDL INCLUDE ALL GROUPTRANSOPS 1000 MAPEXCLUDE dbo.excludetable MAP dbo.*, TARGET dbo.*;
次に示すのは、このReplicat構成エントリの説明です。
REPLICAT hdfs
- Replicatプロセスの名前。
TARGETDB LIBFILE libggjava.so SET property=dirprm/hdfs.properties
- 終了時のターゲット・データベースをlibggjava.so
に設定し、Javaアダプタのプロパティ・ファイルをdirprm/hdfs.properties
に設定します。
--SOURCEDEFS ./dirdef/dbo.def
- ソース・データベース定義ファイルを設定します。これは、Oracle GoldenGateの証跡ファイルが証跡でメタデータを提供するため、コメント・アウトされています。
GROUPTRANSOPS 1000
- ソース証跡ファイルからの1000個のトランザクションを1つのターゲット・トランザクションにグループ化します。これがデフォルトで、ビッグ・データ統合のパフォーマンスが向上します。
MAPEXCLUDE dbo.excludetable
- 除外する表を設定します。
MAP dbo.*, TARGET dbo.*;
- 入力表から出力表へのマッピングを設定します。
1.5.1.2 Replicatプロセスの追加
ggsci
でReplicatプロセスを追加して起動するコマンドは、次のとおりです。
ADD REPLICAT hdfs, EXTTRAIL ./dirdat/gg START hdfs
1.5.1.3 Replicatのグループ化
Replicatプロセスは、Replicat構成プロパティGROUPTRANSOPS
を提供してトランザクションのグループ化を制御します。デフォルトでは、Replicatプロセスは1000個のトランザクションを1つのターゲット・トランザクションにグループ化します。トランザクションのグループ化をオフにする場合は、ReplicatプロパティGROUPTRANSOPS
を1
に設定します。
1.5.1.4 Replicatチェックポイントについて
Replicatチェックポイント・ファイル.cpr
のほか、データベースのReplicatにおけるCHECKPOINTTABLE
と似た情報を含む追加のチェックポイント・ファイルdirchk/group.cpj
も作成されます。
1.5.1.5 初期ロードのサポートについて
Replicatではすでに、一連の証跡ファイルに書き込むオンライン・キャプチャ・プロセスおよび初期ロード・プロセスの両方からの証跡ファイルを読み取ることができます。さらに、Extractパラメータ・ファイルでRMTTASK
の指定を使用して、特別実行の初期ロード・プロセスの配信をサポートするようにReplicatを構成することもできます。ダイレクト・ロードの構成の詳細は、Oracle GoldenGateダイレクト・ロードを使用したデータのロードに関する項を参照してください。
ノート:
SOURCEDB
またはDBLOGIN
パラメータの指定は、ソース・データベースによって異なります。
1.5.1.6 サポートされないReplicatの機能について
次のReplicat機能は、このリリースではサポートされません。
-
BATCHSQL
-
SQLEXEC
-
ストアド・プロシージャ
-
競合の解決および検出(CDR)
1.5.1.7 マッピング機能の仕組み
Oracle GoldenGate Replicatプロセスは、カスタム・ターゲット・スキーマへのマッピングをサポートしています。メタデータ・プロバイダ機能を使用して、ターゲット・スキーマ(複数も可)を定義してから、Replicat構成ファイルで標準のReplicatマッピング構文を使用して、マッピングを定義する必要があります。レプリケーション構成ファイルのReplicatマッピング構文の詳細は、データのマッピングと操作に関する項を参照してください。
1.5.2 ロギングの概要
ビッグ・データのターゲットに対して使用するOracle GoldenGate for Big Data統合をトラブルシューティングするには、ロギングが必須です。この項では、Oracle GoldenGate for Big Data統合のログと、ロギングのベスト・プラクティスについて説明します。
トピック:
1.5.2.1 Replicatプロセスのロギングについて
Oracle GoldenGate for Big Data統合は、「Javaメッセージの配信」で説明されているJava配信の機能を利用します。この設定では、Oracle GoldenGateのReplicatプロセスがユーザー・エグジット共有ライブラリをロードします。この共有ライブラリは次に、Java仮想マシンをロードし、それによってJavaインタフェースを提供するターゲットとのインタフェースをとります。したがって、データのフローは次のようになります。
Replicatプロセス —> ユーザー・イグジット —> Java層
ユーザーがログを見直して新しいインストールと統合をトラブルシューティングするには、すべての層で正しくログを記録することが重要です。また、問題が発生してOracleサポートへの連絡が必要になった場合も、ログ・ファイルは問題を効率的に解決するために、Oracleサポートに提供する情報としても重要です。
Replicatプロセスを実行すると、GoldenGate_Home/dirrpt
ディレクトリにログ・ファイルが作成または追加されます。ファイルの命名規則は、process_name.rpt.
です。新しいOracle GoldenGateプロセスをデプロイするときに問題が発生した場合は、最初に問題の有無を調べるべきログ・ファイルの候補です。ビッグ・データ・アプリケーションと統合する場合、Java層は重要です。
1.5.2.2 Java層のロギングについて
Oracle GoldenGate for Big Data製品には、Java層からログを記録できる柔軟性があります。ベスト・プラクティスとしては、Log4jロギングを使用してJava層からログを記録することをお薦めします。単純なLog4jロギングを有効にするには、Javaアダプタ構成ファイルで2つの構成値を設定する必要があります。
gg.log=log4j gg.log.level=INFO
gg.log
設定で、Log4jファイルはGoldenGate_Home
/dirrpt
ディレクトリに作成され、ファイル名はprocess_name_log level
_log4j.log
という命名規則に従います。サポートされるLog4jログ・レベルは、ロギングの粒度の順に次のリストになります。
-
OFF
-
FATAL
-
ERROR
-
WARN
-
INFO
-
DEBUG
-
TRACE
ロギング・レベルの選択には、粒度が低いほうのロギング・レベルがすべて含まれます(つまり、WARN
を選択した場合は、FATAL
、ERROR
、WARN
のログ・メッセージがログ・ファイルに書き込まれます)。Log4jロギングはまた、個々のLog4jプロパティ・ファイルでも制御できます。こうした個別のLog4jプロパティ・ファイルを有効にするには、Javaアダプタ・プロパティ・ファイルでbootoptions
プロパティを編集します。Log4jプロパティ・ファイルの3つの例が、インストール時に追加され、次のクラスパスにも含まれています。
log4j-default.properties log4j-debug.properites log4j-trace.properties
これらのファイルのいずれかで、次のようにbootoptions
を変更できます。
javawriter.bootoptions=-Xmx512m -Xms64m -Djava.class.path=.:ggjava/ggjava.jar -Dlog4j.configuration=samplelog4j.properties
カスタマイズした独自のLog4jプロパティ・ファイルを使用してロギングを制御できます。カスタマイズしたLog4jプロパティ・ファイルを、JVMが検索してロードするには、それがJavaクラスパスに存在する必要があります。カスタムLog4jプロパティ・ファイルの例を次に示します。
# Root logger option log4j.rootLogger=INFO, file # Direct log messages to a log file log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=sample.log log4j.appender.file.MaxFileSize=1GB log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
カスタムのLog4jプロパティ・ファイルを使用する場合には、重要な要件が2つあります。1つ目に、カスタムLog4jプロパティ・ファイルのパスがjavawriter.bootoptions
プロパティに含まれる必要があります。ロギングは、ロギングの書記化後にgg.classpath
プロパティの内容が実際にclassloader
に追加されるとき、JVMが初期化されるとただちに初期化されます。2つ目に、プロパティ・ファイルを正しくロードするclasspath
は、ワイルドカードを追加していないプロパティ・ファイルを含むディレクトリである必要があります。
1.5.3 スキーマ展開およびメタデータ変更イベントについて
証跡内のメタデータは、スキーマ展開およびビッグ・データのターゲット・アプリケーションへのスキーマ伝播を含む、Oracle GoldenGate for Big Dataによるメタデータ変更イベントのシームレスな実行時処理を可能にする機能です。NO_OBJECTDEFS
は、ExtractおよびReplicatのEXTTRAIL
およびRMTTRAIL
パラメータのサブパラメータで、証跡機能の重要なメタデータを抑制し、静的なメタデータ定義の使用に戻すことができます。
Oracle GoldenGate for Big Dataのハンドラとフォーマッタには、メタデータ変更イベントが発生したときにアクションを実行する機能があります。メタデータ変更イベントが発生したときにアクションを実行できる機能は、ソース証跡ファイルで利用できるメタデータ変更イベントによって異なります。Oracle GoldenGate は、ソースのOracleデータベースからの証跡のメタデータと、DDLデータを伝播をサポートします。ソース証跡ファイルに、証跡のメタデータとDDLデータ(メタデータ変更イベント)がない場合、Oracle GoldenGate for Big Dataはメタデータ変更イベントを処理できません。
1.5.4 構成プロパティCDATA[]のラッピングについて
GoldenGate for Big Dataのハンドラおよびフォーマッタでは、値を空白として解釈できるJavaプロパティ・ファイルで、多くのパラメータの構成がサポートされています。Javaアダプタの構成処理では、Java構成ファイルの構成値から空白が削除されます。空白を削除するこの動作は、構成値によっては望ましいこともありますか、別の構成値には望ましくない場合もあります。また、選択した構成変数で空白が維持されるように、空白値を特殊な構文でラップできます。GoldenGate for Big Dataは、空白を維持するためにCDATA[]
のXML構文を借用しています。空白文字と見なされる値を、CDATA[]
の内部にラップできます。
区切りテキスト・フォーマッタで、改行を区切り文字として設定しようとする例を次に示します。
gg.handler.{name}.format.lineDelimiter=\n
この構成は成功しません。改行文字は空白として解釈され、構成値から削除されてしまうからです。したがって、gg.handler
設定では実質的に、行区切り文字が空白文字列に設定されます。
改行文字の構成を維持するには、次のように、その文字をCDATA[]
ラッパーでラップするだけです。
gg.handler.{name}.format.lineDelimiter=CDATA[\n]
CDATA[]
のラッピングでプロパティを構成すると、空白が維持され、行区切り文字は改行文字になります。
1.5.5 正規表現を使用した検索と置換
個別に構成されるスキーマ・データ(カタログ名、スキーマ名、表名、列名)と列値データの両方についてより強力な検索および置換操作を実行できます。正規表現(regex
)は、パターン・マッチングを通じて検索文字列をカスタマイズする文字列です。文字列を1つのパターンまたは正確に一致する部分に一致させることができます。Oracle GoldenGate for Big Dataでは、標準のOracle Java正規表現パッケージjava.util.regex
が使用されます。Single UNIX Specification, Version 4の「正規表現」を参照してください。
トピック:
1.5.5.1 スキーマ・データの置換の使用
gg.schemareplaceregex
およびgg.schemareplacestring
プロパティを使用してスキーマ・データを置換できます。gg.schemareplaceregex
を使用して正規表現を設定してから、それを使用してカタログ名、スキーマ名、表名、および列名で対応する一致項目を検索します。一致項目はgg.schemareplacestring
値の内容に置き換えられます。gg.schemareplacestring
のデフォルト値は空の文字列または""
です。
たとえば、システム表名の中には、$mytable
のようにドル記号から始まるものがあります。ほとんどのビッグ・データ・ターゲットでは表名にドル記号を使用できませんが、これらの表を複製する必要がある場合があります。ドル記号を削除するには、次の置換文字列を構成できます。
gg.schemareplaceregex=[$]
gg.schemareplacestring=
検索および置換された表名の結果の例はmytable
です。これらのプロパティはCDATA[]
ラッピングもサポートして、構成値の値の空白を保持します。したがって、前と同じ例でCDATA[]
ラッピングすると次のようになります。
gg.schemareplaceregex=CDATA[[$]]
gg.schemareplacestring=CDATA[]
スキーマの検索および置換機能は、次の構成構文を使用した複数の検索正規表現および置換文字列の使用をサポートします。
gg.schemareplaceregex=some_regex
gg.schemareplacestring=some_value
gg.schemareplaceregex1=some_regex
gg.schemareplacestring1=some_value
gg.schemareplaceregex2=some_regex
gg.schemareplacestring2=some_value
1.5.5.2 コンテンツ・データの置換の使用
gg.contentreplaceregex
およびgg.contentreplacestring
プロパティを使用してコンテンツ・データを置換し、構成された正規表現を使用して列値を検索して、一致項目を置換文字列で置換できます。たとえば、これは列値の改行文字を置き換えるのに役立ちます。区切りテキスト・フォーマッタが使用された場合、データに含まれる改行文字は分析ツールで行区切り文字として誤って解釈されます。
n個のコンテンツ置換regex検索値を構成できます。regex検索および置換は、構成の順序で実行されます。構成される値は、次の特定の順序に従う必要があります。
gg.contentreplaceregex=some_regex
gg.contentreplacestring=some_value
gg.contentreplaceregex1=some_regex
gg.contentreplacestring1=some_value
gg.contentreplaceregex2=some_regex
gg.contentreplacestring2=some_value
添え字2を使用せずに添え字3を構成すると、添え字3の構成が無視されます。
注意:
正規表現の検索と置換にはコンピューティング処理が必要で、Oracle GoldenGate for Big Dataプロセスのパフォーマンスが低下する可能性があります。
改行を空白文字に置き換えるには、次のプロパティ構成を使用できます。
gg.contentreplaceregex=[\n]
gg.contentreplacestring=CDATA[ ]
これによって、列値が次の値から変更されます。
this is
me
変更後:
this is me
どちらの値もCDATA
ラッピングをサポートします。2つ目の値はCDATA[]
ラッパーでラップする必要があります。1つの空のスペースは空白と解釈されて、Oracle GoldenGate for Big Data構成層でトリミングされます。さらに、複数の検索および置換文字列を構成できます。たとえば、次の文字列から改行を削除するのに加え、列値から先頭および末尾の空白も削除します。
^\\s+|\\s+$
gg.contentreplaceregex1=^\\s+|\\s+$
gg.contentreplacestring1=CDATA[]
1.5.6 Oracle GoldenGate for Big Data配信のスケーリング
Oracle GoldenGate for Big Dataは、スループット向上のために、ソース証跡ファイルの分割をサポートします。複数のReplicatプロセスに分割するか、またはCoordinated Deliveryを使用して単一のReplicatプロセス内で複数のJavaアダプタ・インスタンスをインスタンス化します。これにより、Oracle GoldenGate for Big Data配信をスケーリングできます。
パフォーマンスが最大となるようにハンドラをチューニングした後でも、Oracle GoldenGate for Big Data統合ターゲットへのスループットが、サービス・レベル合意を満たすのに不十分な場合があります。これが発生すると、次のいずれかの方法を使用して、パラレル処理を構成し、ターゲットに配信できます。
-
複数のReplicatプロセスを、同じソース証跡ファイルからデータを読み取るように構成できます。すべてのプロセスがソース証跡ファイル全体をまとめて処理するように、これらの各Replicatプロセスは、ソース証跡ファイルのデータのサブセットを処理するよう構成されます。 このソリューションを使用した別々のReplicatプロセス間の調整はありません。
-
Oracle GoldenGate Coordinated Deliveryは、単一のReplicatプロセス内のソース証跡ファイルからのデータの処理をパラレル化するために使用できます。このソリューションは、構成済の各サブセットが別の配信スレッドによって処理される論理サブセットへの証跡ファイルの分割を伴います。Coordinated Deliveryの詳細は、https://blogs.oracle.com/dataintegration/entry/goldengate_12c_coordinated_replicatを参照してください。
どちらの方法でも、スループットの向上のため、データをパラレル処理に分割できます。次の2つの方法のいずれかでデータを分割することをお薦めします。
-
ソース・データをソース表別に分割 - データはソース表別のサブセクションに分割されます。たとえば、Replicatプロセス1はソース表(表1および表2)を処理しますが、Replicatプロセス2はソース表(表3および表2)のデータを処理します。データはソース表ごとに分割され、個々の表データはさらに分割されることはありません。
-
ソース表データをサブストリームに分割 - ソース表のデータが分割されます。たとえば、Replicatプロセス1はソース表1のデータ範囲の半分を処理し、Replicatプロセス2はソース表1のもう半分のデータを処理します。
その他の制限事項:
-
パラレル適用はサポートされていません。
-
BATCHSQL
パラメータはサポートされていません。
例1-3 Oracle GoldenGate for Big Dataのハンドラのスケーリング・サポート
ハンドラ名 | ソース・データをソース表別に分割 | ソース表データをサブストリームに分割 |
---|---|---|
Cassandra |
サポート |
次の場合にサポートされます。
|
Elastic Search |
サポート |
サポート |
HBase |
必要なすべてのHBaseネームスペースがHBaseで事前作成されている場合にサポートされます。 |
次の場合にサポートされます。
|
HDFS |
サポート |
いくつかの制限付きでサポートされています。
|
JDBC |
サポート |
サポート |
Kafka |
サポート |
Avroなど、スキーマの伝播をサポートするフォーマットに対してサポートされます。これは、複数のインスタンスによって同じスキーマ情報がターゲットにフィードされるため、あまり望ましくありません。 |
Kafka Connect |
サポート |
サポート |
Kinesis Streams |
サポート |
サポート |
MongoDB |
サポート |
サポート |
Javaファイル・ライター | サポート | サポートされますが次の制限があります。
生成されるファイルの命名規則を、ファイル名が衝突しないように選択する必要があります。ファイル名が衝突していると、Replicatの異常終了またはデータの汚染が発生する場合があります。調整された適用を使用する場合は、 |
1.5.7 Oracle GoldenGate資格証明ストアでの識別子の使用
Oracle GoldenGateの資格証明ストアはユーザーIDおよびその暗号化されたパスワード(ともに資格証明と呼ばれます)を管理します。これらはOracle GoldenGateプロセスにより使用され、ローカル・データベースと対話します。資格証明ストアを使用すると、Oracle GoldenGateのパラメータ・ファイルにユーザー名およびクリアテキスト・パスワードを指定する必要がなくなります。ユーザーIDのかわりにパラメータ・ファイルのオプションの別名を使用して、資格証明ストアのユーザーIDとパスワードのペアにマップすることもできます。資格証明ストアはOracle Credential Store Framework (CSF)内の自動ログイン・ウォレットとして実装されます。LDAPディレクトリの使用は、Oracle GoldenGate資格証明ストアではサポートされていません。自動ログイン・ウォレットは、必要なパスワードを指定するための人の介在を必要とせず、Oracle GoldenGateプロセスの自動再起動をサポートします。
Oracle GoldenGate for Big Dataでは、実際のユーザーIDまたはパスワードではなく、別名およびドメインをプロパティ・ファイルで指定します。ユーザー資格証明は、セキュアなウォレット・ストレージで管理されます。
トピック:
1.5.7.1 資格証明ストアの作成
ビッグ・データ環境用の資格証明ストアを作成できます。
GGSCI ADD CREDENTIALSTORE
コマンドを使用して、Oracle GoldenGateインストール・ディレクトリ(デフォルト)のdircrd/
サブディレクトリにあるcwallet.sso
という名前のファイルを作成します。
資格証明ストアcwallet.sso
ファイルの場所を指定するには、GLOBALS
ファイルのCREDENTIALSTORELOCATION
パラメータで目的の場所を指定します。
資格証明ストア・コマンドの詳細は、『Oracle GoldenGateリファレンス』を参照してください。
ノート:
Oracle GoldenGateインスタンスごとに1つの資格証明ストアのみ使用できます。
1.5.7.2 資格証明ストアへのユーザーの追加
ビッグ・データ環境の資格証明ストアを作成した後、ストアにユーザーを追加できます。
各ユーザーを作成するにはGGSCI ALTER CREDENTIALSTORE ADD USER userid PASSWORD password [ALIAS alias] [DOMAIN domain]
コマンドを実行します。
-
userid
はユーザー名です。資格証明ストアに配置できるユーザー名のインスタンスは1つのみです(ALIAS
またはDOMAIN
オプションが使用されていない場合)。 -
password
はユーザーのパスワードです。このオプションを使用すると、パスワードはエコーされます(不明瞭化されません)。このオプションを省略すると、コマンドはパスワードを要求しますが、入力時に不明瞭化されます(より安全な方法として推奨されます)。 -
alias
はユーザー名の別名です。ログイン資格証明が必要なパラメータとコマンドでは、資格証明のかわりに別名を使用します。ALIAS
オプションを省略すると、別名はデフォルトでユーザー名に設定されます。
次に例を示します。
ALTER CREDENTIALSTORE ADD USER scott PASSWORD tiger ALIAS scsm2 domain ggadapters
資格証明ストア・コマンドの詳細は、『Oracle GoldenGateリファレンス』を参照してください。
1.5.7.3 資格証明ストアにアクセスするためのプロパティの構成
Oracle GoldenGate Java Adapterプロパティ・ファイルでは、実行時に資格証明ストアのユーザー名とパスワード・エントリを解決する固有の構文が必要です。ユーザー名を解決するための構文は次のとおりです。
ORACLEWALLETUSERNAME[alias domain_name]
パスワードを解決するための構文は次のとおりです。
ORACLEWALLETPASSWORD[alias domain_name]
次の例は、myalias
という別名とmydomain
というドメインで資格証明ストアのエントリを構成する方法を示しています。
ノート:
HDFS Hive JDBCでは、ユーザー名とパスワードが暗号化されます。
Oracle Walletの統合は、文字列usernameまたはpasswordを含む構成プロパティに対してのみ機能します。次に例を示します。
gg.handler.hdfs.hiveJdbcUsername=ORACLEWALLETUSERNAME[myalias mydomain]
gg.handler.hdfs.hiveJdbcPassword=ORACLEWALLETPASSWORD[myalias mydomain]
ユーザー名とパスワードのエントリは資格証明ストアでアクセス可能な値と見なされます。Java Adapter層で解決される(Cユーザー・イグジット層ではアクセスされない)構成プロパティは資格証明ストアから解決できます。これにより、機密情報を含む構成エントリを保護する方法に柔軟性を持たせることができます。