サポートと今すぐチャット
サポートとのチャット

SharePlex 11.4 - インストールおよびセットアップガイド

このガイドについて このガイドで使用される表記規則 OracleソースへのSharePlexのインストールと設定
Oracle向けSharePlexプレインストールチェックリスト SharePlexインストーラのダウンロード Install SharePlex on Linux and UNIX(LinuxとUNIXへのSharePlexのインストール レプリケーションのためのOracle環境のセットアップ Oracleから異なるターゲットタイプへのレプリケーションを設定する Oracle向けクラウドホスト型データベースのインストールとセットアップ リモートキャプチャ向けインストールとセットアップ HAクラスタ向けインストールとセットアップ Oracle向け一般SharePlexデモ Oracle向け高度なSharePlexデモ データベース・セットアップ・ユーティリティ Oracleのインストールに関する問題の解決
ソースおよびサービスとしてのPostgreSQLデータベースへのSharePlexのインストールとセットアップ
PostgreSQL向けSharePlexのインストール前のチェックリスト PostgreSQL向けSharePlexインストーラのダウンロード ソースとしてのPostgreSQL向けLinuxへのSharePlexのインストール PostgreSQLからサポートされているターゲットタイプへのレプリケーションの設定 PostgreSQL向けクラウドホスト型データベースのインストールとセットアップ PostgreSQL向けリモートキャプチャのインストールとセットアップ PostgreSQL高可用性クラスタへのSharePlexのインストール 論理レプリケーションを使用した高可用性のPostgreSQL Azure Flexible ServerでのSharePlexの設定 PostgreSQL向けの汎用SharePlexデモ PostgreSQL用の高度なSharePlexデモ PostgreSQLのデータベースセットアップ PGDB as a Service向けデータベースセットアップ pg_hint_plan拡張機能のインストール PostgreSQLのインストールに関する問題の解決
DockerコンテナへのSharePlexのインストール SharePlexユーザのセキュリティグループへの割り当て インストールの問題の解決 SharePlexのアンインストール 高度なインストーラオプション rootとしてのSharePlexのインストール SharePlexでインストーラされるアイテム

OracleからKafkaへのレプリケーションを設定する

前提条件: KafkaApacheおよびConfluentターゲットにデータをレプリケートする場合、ターゲットのSharePlexはLinuxプラットフォームにのみインストールする必要があります。

概要

SharePlexのPostプロセスは、Kafkaブローカーに接続して書き込むことができます。データは、ソース上で行われた一連の操作として、JSONまたはXML出力に書き出すことができ、その後、Kafkaコンシューマーで消費することができます。

これらの説明書には、このターゲットに固有のセットアップ手順が含まれています。これらのセットアップ手順を実行する前に、本マニュアルの適切な指示に従って、SharePlexをソースとターゲットにインストールします。

SharePlexを使用してこのターゲットにレプリケートする場合、サポート対象のバージョン、データ型、操作については、『SharePlexリリースノート』を参照してください。

Kafkaへのポストに関するガイドライン

  • SharePlexのPostプロセスはKafkaプロデューサーとして機能します。SharePlexPostプロセスは、1つ以上のパーティションを持つ1つ以上のトピックに書き込むことができます。
  • SharePlexPostプロセスではトピック自体は作成されませんが、Kafkaブローカーがトピックを自動作成するように設定できます。

ソース上のSharePlexの設定

Oracleソースシステム上でSharePlexとデータベースをセットアップする必要があります。詳細な設定手順については、「ソース上のSharePlexの設定ページを参照してください。

ターゲット上でのSharePlexの設定

これらの手順は、SharePlex Post プロセスが Kafka に接続するように設定します。Kafkaブローカーが動作している必要があります。

Kafkaへのポストを設定します。

  1. Kafkaトピックを作成します。
  2. sp_copを開始します。(まだ設定を有効にしないでください
  3. sp_ctrlを実行します。
  4. 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がリスト内の他のブローカーへの接続を試行するようにします。

Kafkaのレコードフォーマットの設定

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の設定の表示と変更

Kafkaへの出力に関する現在のプロパティ設定を表示するには、以下のtargetコマンドを使用します。

target x.kafka show

プロパティ設定を変更するには、以下のコマンドを使用します。

target x.kafka [queue queuename] set kafka property=value

ここで:

  • queue queuenameはPostキューの名前です。複数のPostプロセスがある場合は、このオプションを使用します。
  • プロパティを下表に示します。

表3: Kafkaターゲットプロパティ

プロパティ 入力値 デフォルト
broker=broker

必須。Kafkaブローカーのホストおよびポート番号、または複数のブローカーのコンマ区切りリスト。このリストがKafkaクラスタへのブートストラップとなります。これらのブローカーのいずれかに接続できれば、Postはクラスタ内の他のブローカーを検出します。

localhost:9092
client_id=ID

オプション。呼び出しの追跡に役立つようにPostが各リクエストで送信するユーザ定義の文字列。

None
compression.code={none, gzip, snappy} オプション。Kafkaでデータを圧縮するかどうかを制御します。オプションはnonegzip、またはsnappyです。 None
partition={number | rotate | rotate trans| messagekey}

必須。次のいずれか:

  • 固定のパーティション番号: 指定されたパーティション番号にのみメッセージをポストするようにPostに指示します。例えば0に設定すると、Postはパーティション0にのみポストするようになります。このオプションは、テストでの使用や、同じKafkaトピックにポストするデータの複数のチャンネルがターゲットにある場合の用途に適しています。
  • キーワードrotate: トピックのすべてのパーティションにラウンドロビン方式でメッセージを適用するようにPostに指示します。パーティションは、メッセージが新しくなるたびに変わります。例えば、あるトピックに3つのパーティションがある場合、メッセージはパーティション0、1、2、0、1、2…の順番にポストされます。
  • キーワードrotate trans: これはrotateオプションと似ていますが、パーティションの番号が、メッセージごとではなくトランザクションごとに大きくなる点が異なります。例えば、あるトピックに3つのパーティションがある場合、コミットまではパーティション0に、コミットまではパーティション1にといった順番でメッセージがポストされます。このオプションは、複数のテーブルを1つのトピックに複製する場合に適しています。これにより、複数のパーティションにデータを分散させながら、トランザクションのすべての操作を単一のパーティションにまとめて保持することができます。その結果、単一のパーティションから読み取るコンシューマーは、完全なトランザクションのストリームを受け取ることができます。
  • キーワードmessagekey: パーティションへのメッセージのポストをPostに指示します。Kafkaのトピックはいくつかのパーティションに分かれています。これらのパーティションは、デフォルトのパーティションハッシュ関数に基づいて選択されます。ハッシュ値はmessagekeyに基づいて計算されます。messagekeyパーティションを使用して、同じキー値を持つすべてのメッセージを同じパーティションに入れます。

注意:

  • LOB列とCLOB列はKafkaパーティションキーとは見なされません。

  • プライマリキー、一意キー、複合キー、または一意のインデックスを持たないテーブルでは、すべての列LOB列とCLOB列を除くがキー列と見なされます。このようなテーブルに対してalterクエリを実行すると、DDLステートメントはすべてのパーティションに複製され、後続のDMLステートメントは既存の列に基づいて特定のパーティションに送信されます。

  • レプリケーションテーブルにキーが定義されていない場合、SharePlexはすべてのテーブル列をKafkaメッセージキーと見なします。キー以外のテーブルでは、SharePlexのユーザ定義キーを使用することをお勧めします。詳細については、『SharePlex管理者ガイド』の「Define a Unique Key: PostgreSQL to PostgreSQL一意キーの定義: PostgreSQLからPostgreSQLへ」のセクションを参照してください。

  • 複数のテーブルがレプリケーションに関与しているときに、特定のテーブルに異なるパーティションタイプを指定し、残りのテーブルをメッセージキーに基づいてパーティション化する場合、これらの特定のテーブルに名前付きpostキューを定義することができます。

例:

target x.kafka queue <queue_name> set kafka partition={number/rotate/rotate trans}

残りのテーブルには以下のコマンドを使用します。

target x.kafka set kafka partition=messagekey

重要:

パーティション化がメッセージキーに基づいて行われる場合、キー情報を含まないメッセージはKafka内部のハッシュ関数に従ってマッピングされます。これらのメッセージには、コミット、スキーマ、ロールバック、セーブポイント、およびDDLステートメントが含まれることがあります。

レプリケーション中にパーティション数が増えると、キーからパーティションへの既存のマッピングは無効になります。

いくつかの列がインデックスとして機能し、他の制約が定義されていないテーブルの場合、SharePlex設定ファイルで一意キーとしてこれらのインデックスを使用します。

例えば、以下のテーブルでは2つの列IDとNAMEに一意のインデックスが定義されています。

create table mytable(ID NUMBER(25,2),NAME CHAR(200),COL_VARCHAR2 VARCHAR2(400),COL_RAW RAW(1000));

CREATE INDEX indx_mytable ON mytable(ID,NAME);

SharePlex設定ファイルで、インデックス列を一意キーとして定義します。

datasource:o.SID
src.mytable !key(ID,NAME) host

詳細については、『SharePlex管理者ガイド』の「Define a Unique Key: Oracle to Oracle一意キーの定義: OracleからOracleへ」のセクションを参照してください。

制約やインデックスが定義されていないテーブルについては、SharePlexでの設定中に一意キーを定義することができます。

複合キーを持つテーブルの場合、キー値のいずれかが変更されると、その変更メッセージは現在のパーティションに置かれます。それ以降のメッセージは同じパーティションに割り当てられることもあれば、割り当てられないこともあります。

0
request.required.acks=value

オプション。これはKafkaクライアントのパラメーターです。デフォルトでは-1に設定されており、allを意味します。実際にはallall 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.factornum.partitionsのサーバ設定も確認してください。

重要! 複数のトピックを使用する場合は、targetコマンドで以下のプロパティも設定する必要があります。
  • 出力はJSONでなければなりません。formatカテゴリのrecordプロパティをjsonに設定します。

    target x.kafka set format record=json

  • コミットは無効にしなければなりません。jsonカテゴリのcommitプロパティをnoに設定します。

    target x.kafka set json commit=no

shareplex

*レイテンシを避けるために、Postはそれ以上着信メッセージがないことを検知すると、しきい値が満たされるのを待たずにKafkaに即座にパケットを送信します。

リカバリオプションの設定

Kafkaプロセスが突然中断したり、実行中のマシンが中断したりすると、行の変更がKafkaトピックに2度書き込まれる可能性があります。これに対処するためには、重複を検出して破棄する必要があります。

トランザクション内のすべての行変更操作のレコードは、同じトランザクションIDを持ち、シーケンスIDも付けられています。これらの属性は、それぞれidmsgIdxであり、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

OracleからSQLまたはXMLファイルへのレプリケーションを設定する

概要

SharePlexは、レプリケートされたOracleデータをSQLまたはXML形式のファイルにポストすることができます。このデータは、ソース上で発生した一連の操作として順次書き込まれ、ターゲットデータベースに順次ポストされるか、外部プロセスやプログラムによって消費されます。

これらの説明書には、このターゲットに固有のセットアップ手順が含まれています。これらのセットアップ手順を実行する前に、本マニュアルの適切な指示に従って、SharePlexをソースとターゲットにインストールします。

SharePlexを使用してこのターゲットにレプリケートする場合、サポート対象のバージョン、データ型、操作については、『SharePlexリリースノート』を参照してください。

ソース上でのSharePlexの設定

ソース上で、captureおよびルーティング情報を指定するSharePlexの設定ファイルを作成します。設定ファイルに必要な構造はレプリケーション戦略によって異なりますが、SQLまたはXMLファイルにデータをルーティングするために必要な構文をここに示します。

Datasource:o.SID
src_owner.table !file[:tgt_owner.table] host

ここで:

  • SIDは、ソースOracleデータベースのORACLE SIDです。
  • src_owner.tableは、ソーステーブルの所有者と名前です。

  • !fileはPostにファイルへの書き込みを指示する必須キーワードです。
  • tgt_owner.tableはオプションであり、ターゲットテーブルの所有者と名前です。どちらかのコンポーネントがソーステーブルと異なる場合に使用します。
  • hostはターゲットシステムの名前です。

注意:SharePlex管理ガイド』の「データをレプリケートするためのSharePlexの設定」 を参照してください。

ソースの構成例:

次の例では、スキーマPRODpartsを、Oracleインスタンスora112からターゲットシステムsysprodのファイルにレプリケートします。

Datasource:o.ora112

PROD.parts !file syS Prod

ターゲット上でのSharePlexの設定

デフォルトでは、SharePlexは、データをXML形式のファイルにフォーマットします。出力ファイルのプロパティを変更する必要がない限り、ターゲットの設定は必要ありませんOracleからSQLまたはXMLファイルへのレプリケーションを設定する」を参照。SQL形式で出力するには、targetコマンドを使用して、SQL出力を以下のように指定します。

SQL形式でデータを出力するには、以下を行います。

  1. sp_copを開始します。
  2. sp_ctrlを開始します。
  3. 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_recordsmax_sizemax_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

Oracle向けクラウドホスト型データベースのインストールとセットアップ

内容

 

クラウド上でのSharePlexのセットアップの概要

SharePlexは、Amazon Web ServicesAWSとMicrosoft Azureのサービスとしてインストールされたデータベースをサポートしています。SharePlexがサポートするクラウドデータベースについては、各データベースの『SharePlexリリースノート』の「サポート対象のクラウドプラットフォーム」を参照してください。

IaaSクラウド環境、PaaSクラウド環境、SaaSクラウド環境では、SharePlexのインストール方法にいくつかの違いがあります。これらの違いは、SharePlexのインストールと設定についてのみです。一度インストールして設定すれば、SharePlexはクラウドでもオンプレミスと同じように動作します。

IaaSアクセス可能環境へのインストール

クラウド・データベース・サービスが真のIaaS仮想コンピューティング環境であれば、カスタムアプリケーション環境をインストールして実行し、オペレーティングシステムにアクセスし、アクセス権限とストレージを管理することができます。この環境では、SharePlexはローカルにインストールするのと同じようにクラウドサーバに直接インストールされ、特別なセットアップの必要はありません。

この環境では以下が適用されます。

PaaS非アクセス可能環境へのインストール

クラウドデータベースが真のPaaS環境にインストールされている場合、基礎となるオペレーティングシステムにアクセスすることはできないため、クラウドサービスの外部にあるサーバにSharePlexをインストールする必要があります。次に、リモート接続を介してターゲットデータベースとやり取りするようにSharePlexを設定します。

SharePlexは、リモートキャプチャとリモートポスト機能を使用して、サポートされているソースからデータをキャプチャし、PaaS環境のデータベースにポストすることができます。

PaaSソースとターゲットにSharePlexをインストールするには、以下のいずれかの方法があります。

  • リモートポストでは、オンプレミス本番環境ソースサーバを使用して、すべてのSharePlexレプリケーションコンポーネントを実行できます。このセットアップでは、ソースとターゲット両方のレプリケーションプロセスおよびそのキューが、1つのサーバにインストールされています。SharePlexのPostプロセスは、リモート接続を介してターゲット・クラウド・データベースに接続されます。

    詳細については、「OracleのソースサーバからPaaSクラウドへのポスト」を参照してください。

    注意: 大量のトランザクションが発生する環境では、postキューにデータが蓄積され、複数のPostプロセスが存在すると、本番稼働システムにとって許容できないオーバーヘッドが発生する可能性があります。その場合は、中間サーバを使う必要があります。

  • オンプレミス中間サーバを使用して、ImportコンポーネントとPostコンポーネントおよびpostキューを実行することができます。Postは、リモート接続を介してターゲット・クラウド・データベースに接続されます。この方法では、ソースサーバからレプリケーションのオーバーヘッドのほとんどが除去されます。詳細については、「中間サーバからPaaSクラウドへのポスト」のセクションを参照してください。

SaaS非アクセス可能環境へのインストール

クラウドデータベースが真の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をインストールします

関連ドキュメント

The document was helpful.

評価を選択

I easily found the information I needed.

評価を選択