前提条件: Kafka(ApacheおよびConfluent)ターゲットにデータをレプリケートする場合、ターゲットのSharePlexはLinuxプラットフォームにのみインストールする必要があります。
SharePlexのPostプロセスは、Kafkaブローカーに接続して書き込むことができます。データは、ソース上で行われた一連の操作として、JSONまたはXML出力に書き出すことができ、その後、Kafkaコンシューマーで消費することができます。
これらの説明書には、このターゲットに固有のセットアップ手順が含まれています。これらのセットアップ手順を実行する前に、本マニュアルの適切な指示に従って、SharePlexをソースとターゲットにインストールします。
SharePlexを使用してこのターゲットにレプリケートする場合、サポート対象のバージョン、データ型、操作については、『SharePlexリリースノート』を参照してください。
Oracleソースシステム上でSharePlexとデータベースをセットアップする必要があります。詳細な設定手順については、「ソース上のSharePlexの設定ページを参照してください。
これらの手順は、SharePlex Post プロセスが Kafka に接続するように設定します。Kafkaブローカーが動作している必要があります。
Kafkaへのポストを設定します。
targetコマンドを実行し、Kafkaブローカーとトピックへの投稿を設定します。以下はコマンドの例です。
sp_ctrl> target x.kafka set kafka broker=host1:9092,host2:9092,host3:9092
sp_ctrl> target x.kafka set kafka topic=shareplex
コマンドの説明とオプションについては、「Kafkaの設定の表示と変更」を参照してください。
注意: 複数のブローカーを指定することで、いずれかのブローカーがダウンした場合にSharePlexがリスト内の他のブローカーへの接続を試行するようにします。
SharePlex は、Kafkaへの入力としてXMLまたはJSON形式で出力できます。XMLがデフォルトです。入力フォーマットを設定し、フォーマットオプションを指定するには、以下のいずれかのtargetコマンドを使用します。
target x.kafka set format record=json
または:
target x.kafka set format record=xml
これらのフォーマットのサンプルを表示するには、『SharePlexリファレンスガイド』でtargetコマンドのドキュメントのformatカテゴリを参照してください。
注意: OracleからKafkaにJSON形式でデータをレプリケートする場合、SharePlexはvarrayデータ型やSDO_GEOMETRYデータ型内のvarrayデータ型をサポートしていません。
Kafkaへの出力に関する現在のプロパティ設定を表示するには、以下のtargetコマンドを使用します。
target x.kafka show
プロパティ設定を変更するには、以下のコマンドを使用します。
target x.kafka [queue queuename] set kafka property=value
ここで:
表3: Kafkaターゲットプロパティ
プロパティ | 入力値 | デフォルト | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
broker=broker |
必須。Kafkaブローカーのホストおよびポート番号、または複数のブローカーのコンマ区切りリスト。このリストがKafkaクラスタへのブートストラップとなります。これらのブローカーのいずれかに接続できれば、Postはクラスタ内の他のブローカーを検出します。 |
localhost:9092 | ||||||||
client_id=ID |
オプション。呼び出しの追跡に役立つようにPostが各リクエストで送信するユーザ定義の文字列。 |
None | ||||||||
compression.code={none, gzip, snappy} | オプション。Kafkaでデータを圧縮するかどうかを制御します。オプションはnone、gzip、またはsnappyです。 | None | ||||||||
partition={number | rotate | rotate trans| messagekey} |
必須。次のいずれか:
|
0 | ||||||||
request.required.acks=value |
オプション。これはKafkaクライアントのパラメーターです。デフォルトでは-1に設定されており、allを意味します。実際にはallはall in-sync replicasを意味するため、これについてはKafkaのドキュメントを参照してください。このパラメーターは、min.insync.replicas brokerパラメーターと併用することで、可用性とデータの一貫性の関係を調整することができます。 重要: これらの設定によっては、Kafkaプロデューサー(この場合はSharePlex )とKafkaクラスタの間でデータが失われる可能性があります。 |
-1 | ||||||||
topic=topic_name |
必須。ターゲットのKafkaトピックの名前。 この文字列には特殊なシーケンス%oまたは%tを含めることができます。%oのシーケンスは、複製されるテーブルの所有者名に置き換えられます。%tのシーケンスは、複製されるテーブルのテーブル名に置き換えられます。この機能は、Kafkaサーバの設定auto.create.topics.enabledが「true」に設定されている場合に使用できます。また、トピックが自動的に生成されるときのデフォルトとして使用されるため、default.replication.factorとnum.partitionsのサーバ設定も確認してください。
|
shareplex |
*レイテンシを避けるために、Postはそれ以上着信メッセージがないことを検知すると、しきい値が満たされるのを待たずにKafkaに即座にパケットを送信します。
Kafkaプロセスが突然中断したり、実行中のマシンが中断したりすると、行の変更がKafkaトピックに2度書き込まれる可能性があります。これに対処するためには、重複を検出して破棄する必要があります。
トランザクション内のすべての行変更操作のレコードは、同じトランザクションIDを持ち、シーケンスIDも付けられています。これらの属性は、それぞれidとmsgIdxであり、XML出力のtxn要素の下にあります(「OracleからKafkaへのレプリケーションを設定する」を参照)。
トランザクションIDは、トランザクションがコミットされた時点のSCNであり、シーケンスIDは、トランザクション内の変更行のインデックスです。これらの2つの値は、リカバリ時にKafkaトピックに書き直された場合、同じ値であることが保証されます。
必要であれば、以下のコマンドを使用して、行変更レコードごとに追加のメタデータを含めるようにPostを設定することができます。
target x.kafka [queue queuename] set metadata property[, property]
表4: オプションのメタデータプロパティ
プロパティ | 説明 |
---|---|
time | ソースに操作が適用された時間。 |
userid | 操作を実行したソースデータベースユーザのユーザID。 |
trans | 操作を含むトランザクションのID。 |
size | トランザクション内の操作数。 |
例:
target x.kafka set metadata time, userid, trans, size
メタデータをリセットするには、以下を行います。
target x.kafka [queue queuename] reset metadata
メタデータを表示するには、以下を行います。
target x.kafka [queue queuename] show metadata
SharePlexは、レプリケートされたOracleデータをSQLまたはXML形式のファイルにポストすることができます。このデータは、ソース上で発生した一連の操作として順次書き込まれ、ターゲットデータベースに順次ポストされるか、外部プロセスやプログラムによって消費されます。
これらの説明書には、このターゲットに固有のセットアップ手順が含まれています。これらのセットアップ手順を実行する前に、本マニュアルの適切な指示に従って、SharePlexをソースとターゲットにインストールします。
SharePlexを使用してこのターゲットにレプリケートする場合、サポート対象のバージョン、データ型、操作については、『SharePlexリリースノート』を参照してください。
ソース上で、captureおよびルーティング情報を指定するSharePlexの設定ファイルを作成します。設定ファイルに必要な構造はレプリケーション戦略によって異なりますが、SQLまたはXMLファイルにデータをルーティングするために必要な構文をここに示します。
Datasource:o.SID | ||
src_owner.table | !file[:tgt_owner.table] | host |
ここで:
src_owner.tableは、ソーステーブルの所有者と名前です。
注意: 『SharePlex管理ガイド』の「データをレプリケートするためのSharePlexの設定」 を参照してください。
次の例では、スキーマPRODのpartsを、Oracleインスタンスora112からターゲットシステムsysprodのファイルにレプリケートします。
Datasource:o.ora112
PROD.parts !file syS Prod
デフォルトでは、SharePlexは、データをXML形式のファイルにフォーマットします。出力ファイルのプロパティを変更する必要がない限り、ターゲットの設定は必要ありません(「OracleからSQLまたはXMLファイルへのレプリケーションを設定する」を参照)。SQL形式で出力するには、targetコマンドを使用して、SQL出力を以下のように指定します。
SQL形式でデータを出力するには、以下を行います。
SQLでレコードを出力するには、以下の必要なtargetコマンドを発行します。
注意: すべて小文字で表記します。
target x.file [queue queuename] set format record=sql
target x.file [queuequeuename] set sql legacy=yes
ここで、queue queuenameは、コマンドの動作を、指定されたキューに関連付けられているSharePlexPostプロセスに制約します。
これらの設定と、設定可能なその他のオプションプロパティについての説明は、「OracleからSQLまたはXMLファイルへのレプリケーションを設定する」を参照してください。
SQLとXML形式のサンプルを見るには、『SharePlexリファレンスガイド』のtargetコマンドのドキュメントを参照してください。
ファイルに出力するための現在のプロパティ設定を表示するには、以下のコマンドを使用します。
target x.file show
設定を変更するには、以下のtargetコマンドを使用します。
target x.file [queue queuename] set [category] property=value
詳細については、『Target(ターゲット)』のtargetコマンドを参照してください。
Postは一連のファイルに書き込みます。アクティブな作業ファイルにはcurrent_というラベルが付加され、変数データディレクトリのopx/currentサブディレクトリに格納されます。
出力フォーマット | currentファイル名 |
---|---|
SQL |
current_legacy.sql |
XML |
current_prodsys.XML |
重要: current_ファイルを開いたり編集したりしないでください。
Postは、max_records、max_size、max_timeパラメーターを使って、新しいアクティブファイルを開始する時点を決定します。この切り替えが発生すると、Postは処理したデータを変数データディレクトリのopxサブディレクトリにあるシーケンスファイルに移動します。ファイル名には、postキュー名、日時、インクリメントIDが含まれます。
SQLファイル:
/installed/vardir> ls -1 opx
0000000000_20140305130858_legacy.sql
0000000001_20140305131130_legacy.sql
0000000002_20140305131212_legacy.sql
0000000003_20140305133835_legacy.sql
0000000004_20140305134028_legacy.sql
XMLファイル:
/installed/vardir> ls -1 opx
0000000000_20140305130858_prodsys.XML
0000000001_20140305131130_prodsys.XML
0000000002_20140305131212_prodsys.XML
0000000003_20140305133835_prodsys.XML
0000000004_20140305134028_prodsys.XML
ファイルを強制的に切り替えるには、次を行います。
currentファイルは、Postを停止しないと表示も使用もできません。currentファイルのデータにアクセスするには、targetコマンドにswitchオプションを付けて、データをシーケンスファイルに移動させ、そこからデータを使用または表示することができます。このコマンドの発行後、Postが新しいレコードを処理した後に切り替わります。
target x.file [queue queuename] switch
SharePlexは、Amazon Web Services(AWS)とMicrosoft Azureのサービスとしてインストールされたデータベースをサポートしています。SharePlexがサポートするクラウドデータベースについては、各データベースの『SharePlexリリースノート』の「サポート対象のクラウドプラットフォーム」を参照してください。
IaaSクラウド環境、PaaSクラウド環境、SaaSクラウド環境では、SharePlexのインストール方法にいくつかの違いがあります。これらの違いは、SharePlexのインストールと設定についてのみです。一度インストールして設定すれば、SharePlexはクラウドでもオンプレミスと同じように動作します。
クラウド・データベース・サービスが真のIaaS仮想コンピューティング環境であれば、カスタムアプリケーション環境をインストールして実行し、オペレーティングシステムにアクセスし、アクセス権限とストレージを管理することができます。この環境では、SharePlexはローカルにインストールするのと同じようにクラウドサーバに直接インストールされ、特別なセットアップの必要はありません。
この環境では以下が適用されます。
SharePlexは、IaaSクラウド内のOracleソースデータベースからキャプチャすることができます。
SharePlexは、IaaSクラウド内のサポートされているあらゆるターゲットデータベースにポストすることができます。
このマニュアルの標準的なインストール手順に進むことができます。
クラウドデータベースが真のPaaS環境にインストールされている場合、基礎となるオペレーティングシステムにアクセスすることはできないため、クラウドサービスの外部にあるサーバにSharePlexをインストールする必要があります。次に、リモート接続を介してターゲットデータベースとやり取りするようにSharePlexを設定します。
SharePlexは、リモートキャプチャとリモートポスト機能を使用して、サポートされているソースからデータをキャプチャし、PaaS環境のデータベースにポストすることができます。
PaaSソースとターゲットにSharePlexをインストールするには、以下のいずれかの方法があります。
リモートポストでは、オンプレミス本番環境ソースサーバを使用して、すべてのSharePlexレプリケーションコンポーネントを実行できます。このセットアップでは、ソースとターゲット両方のレプリケーションプロセス(およびそのキュー)が、1つのサーバにインストールされています。SharePlexのPostプロセスは、リモート接続を介してターゲット・クラウド・データベースに接続されます。
詳細については、「OracleのソースサーバからPaaSクラウドへのポスト」を参照してください。
注意: 大量のトランザクションが発生する環境では、postキューにデータが蓄積され、複数のPostプロセスが存在すると、本番稼働システムにとって許容できないオーバーヘッドが発生する可能性があります。その場合は、中間サーバを使う必要があります。
オンプレミス中間サーバを使用して、ImportコンポーネントとPostコンポーネント(およびpostキュー)を実行することができます。Postは、リモート接続を介してターゲット・クラウド・データベースに接続されます。この方法では、ソースサーバからレプリケーションのオーバーヘッドのほとんどが除去されます。詳細については、「中間サーバからPaaSクラウドへのポスト」のセクションを参照してください。
クラウドデータベースが真のSaaS環境でホストされている場合、基礎となるオペレーティングシステムにアクセスすることはできないため、クラウドサービスの外部にあるサーバにSharePlexをインストールする必要があります。次に、リモート接続を介してソースおよびターゲットデータベースとやり取りするようにSharePlexを設定します。
SaaSターゲットにSharePlexをインストールするには、以下のいずれかの方法があります。
リモートキャプチャでは、オンプレミスまたはクラウドのVM中間サーバを利用して、CaptureおよびExportプロセスを実行するためにSharePlexのインストールと設定を行うことができます。CaptureはソースSaaSデータベースへのリモート接続を確立し、Exportはターゲットシステム上のImportおよびPostプロセスと通信します。
リモートCaptureとリモートPostでは、オンプレミスまたはクラウドのVM中間サーバを使用して、SharePlexのインストールと設定を行うことができます。CaptureとPostの両プロセスは同じサーバ上で実行されます。CaptureはソースSaaSデータベースへのリモート接続を確立し、PostはターゲットSaaSデータベースへのリモート接続を確立します。
PostgreSQL Database as a Service向けのLinux/UnixにSharePlexをインストールします。
© ALL RIGHTS RESERVED. 利用規約 プライバシー Cookie Preference Center