注意: これらの説明は、特に断りのない限り、PostgreSQLのすべての実装に適用されます。
SharePlexは、Open Database Connectivity(ODBC)インターフェイスを介して、レプリケートされたOracleデータをPostgreSQLターゲットデータベースにポストすることができます。SharePlexは、PostgreSQLオープンソースデータベースのすべての実装をサポートしています。
これらの説明書には、このターゲットに固有のセットアップ手順が含まれています。これらのセットアップ手順を実行する前に、本マニュアルの適切な指示に従って、SharePlexをソースとターゲットにインストールします。
SharePlexを使用してこのターゲットにレプリケートする場合、サポート対象のバージョン、データ型、操作については、『SharePlexリリースノート』を参照してください。
重要! Greenplumはプライマリキーに対するUPDATE操作を許可していませんが、Oracleは許可しています。OracleからGreenplumへキーに対するUPDATEをレプリケートするために、Postはターゲットの行を削除し、新しいキー値を含むソース行に基づいて新しい行を挿入します。 |
あるデータベースタイプのソースと別のデータベースタイプのターゲットとの間のレプリケーションをサポートするには、ソースとターゲットの列名の大文字と小文字を同じにする必要があります(両方の列名を小文字に、または両方の列名を大文字にするなど)。ソース列名とターゲット列名で大文字と小文字が異なる場合は、列マッピング機能を使って設定ファイルの列名をマッピングします。
SharePlexによる列マッピングの詳細については、『SharePlex管理ガイド』を参照してください。
Oracleソースシステム上でSharePlexとデータベースをセットアップする必要があります。詳細な設定手順については、「ソース上のSharePlexの設定ページを参照してください。
以下の手順を実行して、ターゲット上でSharePlexを構成します。
データベースのセットアップが、「Open Targetチェックリストページの要件をすべて満たしていることを確認します。
SharePlexは、Open Database Connectivity(ODBC)インターフェイスを通じて、レプリケートされたOracleデータをMySQLまたはHANAターゲットデータベースにポストすることができます。
これらの説明書には、このターゲットに固有のセットアップ手順が含まれています。これらのセットアップ手順を実行する前に、本マニュアルの適切な指示に従って、SharePlexをソースとターゲットにインストールします。
SharePlexを使用してこのターゲットにレプリケートする場合、サポート対象のバージョン、データ型、操作については、『SharePlexリリースノート』を参照してください。
あるデータベースタイプのソースと別のデータベースタイプのターゲットとの間のレプリケーションをサポートするには、ソースとターゲットの列名の大文字と小文字を同じにする必要があります(両方の列名を小文字に、または両方の列名を大文字にするなど)。ソース列名とターゲット列名で大文字と小文字が異なる場合は、列マッピング機能を使って設定ファイルの列名をマッピングします。
SharePlexによる列マッピングの詳細については、『SharePlex管理ガイド』を参照してください。
Oracleソースシステム上でSharePlexとデータベースをセットアップする必要があります。詳細な設定手順については、「ソース上のSharePlexの設定ページを参照してください。
以下の手順を実行して、ターゲット上でSharePlexを構成します。
データベースのセットアップが、「Open Targetチェックリストページの要件をすべて満たしていることを確認します。
SharePlexは、ODBC(Open Database Connectivity)をサポートしているデータベースに接続することができます。
これらの説明書には、このターゲットに固有のセットアップ手順が含まれています。これらのセットアップ手順を実行する前に、本マニュアルの適切な指示に従って、SharePlexをソースとターゲットにインストールします。
SharePlexを使用してこのターゲットにレプリケートする場合、サポート対象のバージョン、データ型、操作については、『SharePlexリリースノート』を参照してください。
あるデータベースタイプのソースと別のデータベースタイプのターゲットとの間のレプリケーションをサポートするには、ソースとターゲットの列名の大文字と小文字を同じにする必要があります(両方の列名を小文字に、または両方の列名を大文字にするなど)。ソース列名とターゲット列名で大文字と小文字が異なる場合は、列マッピング機能を使って設定ファイルの列名をマッピングします。
SharePlexによる列マッピングの詳細については、『SharePlex管理ガイド』を参照してください。
Oracleソースシステム上でSharePlexとデータベースをセットアップする必要があります。詳細な設定手順については、「ソース上のSharePlexの設定ページを参照してください。
以下のようにターゲットシステム上でSharePlexを設定し、データベースを設定します。
注意: データベースのセットアップが、「Open Targetチェックリストページの要件をすべて満たしていることを確認します。
お使いのデータベースに適したODBCドライバをダウンロードしてください。
ターゲットシステム上で、Postがターゲットデータベースに接続するために使用するODBC接続情報を設定します。この接続情報の設定には以下のオプションがあります。
UnixとLinuxでは、以下のどちらかを実行できます。
データベースに付属の説明書に従って、ターゲットシステム上でユーザまたはシステムDSNを設定します。DSNを使用し、ターゲットデータベースに接続してテストします。接続に成功したら、ODBC設定ファイルをSharePlexの変数データディレクトリのodbcサブディレクトリにコピーします。LD_LIBRARY_PATH環境変数をデータベースODBCドライバの場所に設定します。
または…
Postの設定でODBC接続情報を設定します。「connectionコマンドによる接続情報の設定」を参照してください。
connectionコマンドは以下の目的で使用します。
接続情報を設定するには:
connectionコマンドを、setオプションを指定してキーワードごとに1回ずつ実行します。
connection r.database_name set keyword=value
キーワード | 入力する値 |
---|---|
user |
SharePlexに割り当てられたデータベースユーザ |
password |
SharePlexユーザのパスワード |
dsn |
データベースのDSN 重要! user、password、dsnは、DSNが存在する場合にのみ必要なキーワードです。 |
キーワード | 入力する値 |
---|---|
user |
SharePlexに割り当てられたデータベースユーザ |
password |
SharePlexユーザのパスワード |
port |
データベースポート番号 |
server |
データベースサーバの名前またはIPアドレス |
driver |
データベースサーバ上のODBCドライバのフルパス |
キーワード | 入力する値 |
---|---|
user |
SharePlexに割り当てられたデータベースユーザ |
password |
SharePlexユーザのパスワード |
connect_string | ユーザ定義の接続文字列。独自の接続文字列を使用する場合は、ODBC接続を成功させるために必要な要素がすべて含まれていることを確認してください。ただし、ユーザ名とパスワードは省略してください。userおよびpasswordオプションを指定してconnectionコマンドを使用し、ユーザ情報を提供します。 |
connection r.mydb set user=myuser
connection r.mydb set password=mypassword
connection r.mydb set dsn=mydsn
connection r.mydb set user=myuser
connection r.mydb set password=mypassword
connection r.mydb set port=1234
connection r.mydb set server=server1
connection r.mydb set driver=/database/ODBC/lib/databasedriver.so
connection r.mydb set user=myuser
connection r.mydb set password=mypassword
connection r.mydb set connect_string=”driver=/database/ODBC/lib/databasedriver.so;server=server1;port=1234;uid=myuser;pwd=mypassword”
SharePlexの接続設定を削除するには、resetオプションを指定してconnectionを使用します。
特定の接続値を削除するには:
connection r.database_name reset keyword
すべての接続値を削除するには:
connection r.database_name reset
例:
connection r.mydb reset port
connection r.mydb reset
SharePlexの接続設定を表示するには、showオプションを指定してconnectionを使用します。
データベースの接続値を表示するには:
connection r.database_name show
すべてのローカルデータベースの接続設定を表示するには:
connection show all
レプリケートされたOracle ALTER TABLEコマンドをOpen Targetターゲットの正しいデータ型に正確にポストするために、SharePlexは、Oracleデータ型をターゲットデータベースのデフォルトデータ型にマッピングします。このマッピングを表示および変更するには、typemapコマンドを使用します。
注意: DML操作については、SharePlexはレプリケートされたデータの適切なデータ型マッピングを決定するために、ターゲットデータベースに問い合わせます。
typemapコマンドの詳細については、『SharePlexリファレンスガイド』を参照してください。
SharePlex Postプロセスは、JMS(Java Messaging Service)のキューやトピックに接続して書き込むことができます。データは、データ定義、操作タイプ、変更された列値を含むXMLレコードとして書き込まれる。このデータは、ソース上で発生した一連の操作として順次書き込まれ、ターゲットデータベースに順次ポストされるか、外部プロセスやプログラムによって消費されます。
これらの説明書には、このターゲットに固有のセットアップ手順が含まれています。これらのセットアップ手順を実行する前に、本マニュアルの適切な指示に従って、SharePlexをソースとターゲットにインストールします。
SharePlexを使用してこのターゲットにレプリケートする場合、サポート対象のバージョン、データ型、操作については、『SharePlexリリースノート』を参照してください。
Oracleソースシステム上でSharePlexとデータベースをセットアップする必要があります。詳細な設定手順については、「ソース上のSharePlexの設定ページを参照してください。
この手順では、Javaプロバイダをターゲットで確立します。また、JMSプロバイダに接続するようSharePlex Postプロセスを設定します。
Java Runtime Environment(JRE)1.8以降。JRE 1.8(またはそれ以降)は必須であり、以下のオペレーティングシステムを除き、SharePlexとともにインストールされます。
これらのシステムにSharePlexをインストールする前に、JRE 1.8(またはそれ以降)がインストールされていることを確認してください。SharePlexをインストールした後、bridge設定ファイルを修正して、JREバイナリを指すようにします。以下の各手順の「カスタムJRE」の手順を参照してください。
1.8より後のバージョンのJREの使用。1.8より後のバージョンのJREでコンパイルされたJMS Providerライブラリを使用する場合は、そのバージョンのJREを使用し、そのJREバイナリを指すようにブリッジ(Linux/Unix)設定ファイルを修正します。以下の各手順の「カスタムJRE」の手順を参照してください。
これらの手順では、JMSキューまたはトピックにポストするために、SharePlex Postプロセスを設定します。
注意:
INFO 2016-05-10 01:43:42.000860 [x.jms+jsd-olinux-01] com.quest.shareplex.openbridge.stomp.internal.Connector - Connector x.jms+jsd-olinux-01 at tcp://localhost:61613 stopped. ERROR 2016-05-10 01:43:42.000861 [x.jms+jsd-olinux-01] com.quest.shareplex.openbridge.stomp.internal.Connector - org/apache/activemq/jndi/ActiveMQInitialContextFactory : Unsupported major.minor version 51.0 java.lang.UnsupportedClassVersionError: org/apache/activemq/jndi/ActiveMQInitialContextFactory : Unsupported major.minor version 51.0 |
この手順の例では、以下のディレクトリ命名規則を使用します。
名前 | ディレクトリ |
---|---|
SharePlex | SharePlexインストールディレクトリ |
JMSターゲットへのポストを設定するには、以下を行います。
SharePlex/lib/providersの下にProvider用のディレクトリを作成します。次などを考慮します。
shareplex/lib/providers/provider_name
ProviderがActive MQの場合、パスは以下のようになります:
shareplex/lib/providers/amq
必要なクライアント・ライブラリ・ファイルをprovider_nameディレクトリにコピーします。
例えば、ProviderがActive MQの場合、以下のJARファイルをamqディレクトリにコピーします。
shareplex/lib/providers/amq/activemq-all.jar
shareplex/lib/providers/amq/slf4j.jar
(カスタムJRE)SharePlexとともにインストールされたJRE(1.8.0_312)以外のJREを使用している場合(つまり、SharePlexによってJREがOSにインストールされなかったか、1.8より後のJREバージョンを使用しなければならない場合)、bridge.iniまたはbridgeファイルを修正して、使用するJREバイナリを指すようにします。
以下の方法を使う:
LinuxまたはUnixの場合:
bridgeファイルは以下のディレクトリにあります。
SharePlex/.app-modules/openbridge
SharePlexのインストール時にインストールされたJREは、以下のディレクトリにあります。
SharePlex/.app-modules/openbridge/jre
bridgeファイルで_jvmオプション(例<_jvm="jre/bin/java")を探し、現在のパスを、使用するJREのフルパスに置き換えます。相対パスではなく、JREへの絶対パスを指定する必要があります。
targetコマンドを発行して、JMSキューまたはトピックにポストするようPostを設定します。targetコマンドで設定した値は、ターゲット上でどのようにインスタンス化するかをSharePlexに指示します。以下の例では、ユーザ定義値はイタリック体で示されています。これらの値は、JMS Providerとプロバイダ固有のJMSライブラリに固有の値に置き換えてください。
必要に応じて、次のコマンドを入力します。プロパティと値の詳細については、「JMS設定の表示と変更」を参照してください。targetコマンドの詳細については、『SharePlexリファレンスガイド』を参照してください。
JMSキューに投稿する場合:
sp_ctrl> target x.jms set jms factory_class=factory_class
sp_ctrl> target x.jms set jms provider_url=url
sp_ctrl> target x.jms set jms lib_location=path
例えば、Active MQを使用する場合、次のように設定します。
sp_ctrl> target x.jms set jms lib_location=shareplex/lib/providers/amq
sp_ctrl> target x.jms set jms queuename=JMS_topic_queuename
JMSトピックに投稿する場合:
sp_ctrl> target x.jms set jms factory_class=factory_class
sp_ctrl> target x.jms set jms provider_url=url
sp_ctrl> target x.jms set jms lib_location=path
例えば、Active MQを使用する場合、次のように設定します。
sp_ctrl> target x.jms set jms lib_location=shareplex/lib/providers/amq
sp_ctrl> target x.jms set jms destination=topic
sp_ctrl> target x.jms set jms queuename=JMS_topic_queuename
先にレガシーフレームワークで使用したものとは異なるアプローチで、ロギングメカニズムを実装する必要がある。現在のバージョンでは、-OB_debugToLog,-OB_debugToConsoleパラメーターを削除しました。これにより、log4j2.propertiesファイル内のプロパティをリセットすることによって、ログ詳細の生成と保持をさらに制御できるようになりました。
JMSのログを有効にするには、以下の手順に従ってください:
注意: 標準のlog4j2.properties構文に従って、他のパラメーターを変更することができます。詳細は、以下のリンクを参照してください。
https://logging.apache.org/log4j/2.x/manual/configuration.html#Properties
JMSへの出力に関する現在のプロパティ設定を表示するには、以下のコマンドを使用します。
target x.jms show
プロパティ設定を変更するには、以下のコマンドを使用します。
target x.jms [queue queuename] set jms property=value
ここで:
表1: JMSターゲットプロパティ
プロパティ | 入力値 | デフォルト |
---|---|---|
factory_class=factory_class |
必須。ファクトリクラスの完全修飾クラス名。JNDI環境プロパティjava.naming.factory.initialを設定して、プロバイダの初期コンテキストファクトリのクラス名を指定します。 |
None |
provider_url=url |
必須。オブジェクト名コンポーネントを持たないRMI URL。これは、JNDI環境プロパティjava.naming.provider.urlを設定し、初期コンテキストとして使用されるレジストリの場所を指定します。 JMSプロバイダとURLのタイプに応じて正しいフォーマットを使用してください。例えばLDAPを使用する場合、URLは以下のようになります。 ldap://hostname.company.com/contextName JMSプロバイダのURLについては、JMSプロバイダ管理者にお尋ねください。 |
None |
lib_location=path |
必須。クライアント・ライブラリ・ファイルをインストールしたディレクトリへのパス。 |
None |
destination={queue | topic} |
メッセージングドメイン。有効な値は、queue(ポート間)またはtopic(パブリッシャ・サブスクライバ・モデル)です。 |
キュー |
factory_name=factory_name |
JNDI接続ファクトリの検索名。カンマ区切りリストで複数の名前を指定することができます(例: jndi.name1, jndi.name2)。 |
None |
user=user |
JMSに接続しているユーザ名。認証が不要な場合は、このオプションとpasswordオプションを省略します。 |
None |
password=password |
JMSユーザのパスワード。 |
None |
queuename=JMS_topic_queuename |
JMSキューまたはトピックの名前。 |
OpenTarget |
persistent={yes | no} |
yesは、送信操作の一部として、メッセージをディスクストレージにログ記録します。 noは、ログが記録されなくなります。 |
yes |
session_transacted ={yes | no} |
noは、複製された各メッセージに対してJMSコミットを発行するようPostに指示し、各メッセージを即座に可視化して使用可能にします。これがデフォルトです。 yesは、トランザクション方式で動作するようにPostに指示します。このモードでPostは、以下に基づく間隔で、メッセージを可視化して使用可能にするJMSコミットを発行します。
|
no |
properties |
使用しているJMSプロバイダが、SharePlexによって提供されるプロパティのデフォルトセットを含むメッセージを消費できない場合、このオプションを使用します。このオプションではプロパティを削除または追加することができます。プロパティをカンマ区切りリストで指定します。
|
None |
client_id | 使用しているJMSプロバイダが、デフォルトのSharePlexクライアントIDを含むメッセージを使用できない場合は、このオプションを使用します。この値は、プロバイダが受け付けるクライアントIDを設定します。 | None |
commit_frequency |
このオプションは、Postがトランザクション方式でJMSサーバにポストするように設定されている場合に使用します(session_transactedプロパティで指示されるようにすべてのメッセージの後ではなく、一定間隔でJMSコミットを発行)。このパラメーターはJMSコミットの間隔を指定します。SP_OPX_READRELEASE_INTERVALパラメーターと連動して動作します。有効な値は1から任意の正の整数です。 |
1,500 |
JMSプロセスが突然中断したり、実行中のマシンが中断したりすると、行の変更がJMSターゲットに2度書き込まれる可能性があります。これに対処するためには、重複を検出して破棄する必要があります。
トランザクション内のすべての行変更操作のレコードは、同じトランザクションIDを持ち、シーケンスIDも付けられています。これらの属性は、それぞれidとmsgIdxであり、XML出力のtxn要素の下にあります(「XMLフォーマットの表示」を参照)。
トランザクションIDは、トランザクションがコミットされた時点のSCNであり、シーケンスIDは、トランザクション内の変更行のインデックスです。この2つの値は、復旧時にJMSキューに書き直された場合、同じ値であることが保証されます。
必要であれば、以下のコマンドを使用して、行変更レコードごとに追加のメタデータを含めるようにターゲットを設定できます。
target target [queue queuename] set metadata property[, property]
表2: オプションのJMSメタデータプロパティ
プロパティ | 説明 |
---|---|
time | ソースに操作が適用された時間。 |
userid | 操作を実行したソースデータベースユーザのユーザID。 |
trans | 操作を含むトランザクションのID。 |
size | トランザクション内の操作数。 |
target x.jms set metadata time, userid, trans, size
メタデータをリセットするには、以下を行います。
target x.jms [queue queuename] reset metadata
メタデータを表示するには、以下を行います。
target x.jms [queue queuename] show metadata
複数の名前付きPostキューを通してJMSへの大量のトランザクションを処理するようにPostを設定した場合、Post JMS bridgeへのメモリ割り当ての増加が必要になる可能性があります。デフォルト設定は256 MBと512 MBです。
JMSブリッジのメモリを増やす:
openbridge.iniファイルを開き、以下のパラメーターを表示されているフォーマットで設定します。
-Xms=512m
-Xmx=1024m
-XX:PermSize=512m
-XX:MaxPermSize=1024m
キューやトピックへの各書き込みが成功したか失敗したかをログに記録するよう、Postを設定することができます。これはデバッグ設定でコントロールします。
デバッグを有効にするには、以下を行います。
openbridge.iniファイルを開き、-OB_debugToLogパラメーターをtrueに設定します。
-OB_debugToLog=true
SharePlexがJMSに送信するレコードのXMLフォーマットを表示するには、『SharePlexリファレンスガイド』でtargetコマンドのドキュメントのformatカテゴリを参照してください。
© ALL RIGHTS RESERVED. 利用規約 プライバシー Cookie Preference Center