Oracleのリモートデータベースを使用する場合の、システム構成、TROの設定およびデータベースの設定について説明します。
Oracleの設定などについては、Oracleのマニュアルを参照してください。
DBクライアント側には、Oracle Database Clientをインストールします。インストールタイプは、Instant Client、管理者、ランタイムが使用できます。
Oracle Database Clientのバージョンに合わせて、本製品の"Oracleのバージョンレベルのエントリ操作"を行う必要があります。Oracle Database Clientのバージョンが11gR2の場合の例を以下に示します。
/opt/FJSVlnktr/bin/lxrtmoralnk.sh 11.2.0 |
lxrtmoralnk 1120 |
バージョンエントリの詳細については、本製品のインストールガイドを参照してください。
DBクライアント側のバージョンは、DBサーバ側のデータベースへの接続をサポートしているものにする必要があります。詳細はOracleのマニュアルを参照してください。
認証の種類は以下のとおりです。
データベースの認証機構
システム構成を以下に示します。
グローバルサーバからJournalTransferを通じてデータを受信してTRMのメッセージキューに格納します。
DBクライアント側でローカル・ネット・サービスなど(例:netca)により、ネット・サービス名を設定します。TRO側でそのネット・サービス名を設定することにより、Oracleクライアント(Oracle Database Client)を通じてDBサーバにデータを格納します。
対象 | 名前または値 |
---|---|
データベースサーバ | sv1 |
リスナーが使用するポート | 1521/tcp |
サービス名 | ORCL |
ネット・サービス名 | DB1 |
DBサーバ側のデータベースの設定を行います。データベース・インスタンスおよびリスナーを構築し、環境変数などを設定します。また、リモート接続を受け付けるために以下を起動します。
データベース・インスタンス
リスナー
詳細については、Oracleのマニュアルを参照してください。
プロファイル・パラメータ(sqlnet.oraファイル)を設定してください。
SQLNET.EXPIRE_TIMEの例を以下に示します。
SQLNET.EXPIRE_TIME=10 |
ネットワークの切断などによってデータベースから切断されたあとに再接続が完了すると、RT14203メッセージが出力されます。しかし、Oracleの内部で接続情報が残っていると、再接続が完了したにもかかわらず、逐次差分反映処理が進まないことがあります。
SQLNET.EXPIRE_TIMEを指定することにより、この現象を軽減できます。この値を設定しているにも関わらず現象が頻発する場合は、値を小さくすることを推奨します。また、データベースを再起動すると、内部の接続情報は初期化されるため、データベースを再起動することを推奨します。
DBクライアント側のデータベースの設定を行います。詳細については、Oracleのマニュアルを参照してください。
ローカル・ネット・サービスなど(例:Net Configuration Assistant)により、ネット・サービス名を設定します。設定した内容はローカル・ネーミング・パラメータ(tnsnames.oraファイル)に反映されます。
tnsnames.oraファイルの例を以下に示します。ここでは"DB1"がネット・サービス名となります。
DB1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = sv1)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL) ) ) |
Oracleのコマンドなど(例:sqlplusコマンド)により、目的のデータベースに接続できることを確認してください。
FAILOVER_MODEパラメータを設定しないでください。
FAILOVER_MODEパラメータを設定した場合、逐次差分反映処理が異常終了することがあります。また、DB動作環境定義キーワードで指定した再接続のリトライが、データベースから切断されたときに行われません。
他のアプリケーションでFAILOVER_MODEパラメータが必要な場合は、ネット・サービス名を分けてください。(例:"DB1"ではFAILOVER_MODEなし、"DB2"ではFAILOVER_MODEあり、DATABASEオペランドには"DB1"を指定、他のアプリケーションでは"DB2"を指定)
FAILOVER_MODEパラメータについては、Oracleのマニュアルを参照してください。
プロファイル・パラメータ(sqlnet.oraファイル)を設定してください。
SQLNET.RECV_TIMEOUTの例を以下に示します。
SQLNET.RECV_TIMEOUT=3 |
RT14102メッセージでのデータベースシステムのメッセージとしてORA-12535またはORA-12609が頻発する場合は、この値を大きくしてください。
Oracle Database ClientのインストールタイプがInstantClientの場合、tnsnames.oraファイルおよびsqlnet.oraファイルを作成し、そのファイルが存在するディレクトリを、環境変数TNS_ADMINに指定する必要があります。
Oracle Database Clientのインストールタイプが管理者またはランタイムの場合、それぞれのファイルはデフォルトのディレクトリに存在します。デフォルトのディレクトリに存在するファイルを使用する場合、環境変数TNS_ADMINは不要です。
DBクライアント側でTROに必要な環境変数を設定します。詳細については、"4.3.1 環境変数の設定"を参照してください。
DBクライアント側でDB動作環境定義キーワードを指定します。
リモート接続に関するDB動作環境定義キーワードは以下のとおりです。
キーワード | 概要 |
---|---|
接続方式を指定します。 | |
Oracleデータベースのロックの獲得の待機時間を指定します。 | |
切断された場合の、再接続のリトライを行う回数を指定します。 | |
再接続のリトライを行う間隔を指定します。 |
例を以下に示します。
CONNECT_TYPE:REMOTE |
また、他のDB動作環境定義キーワードも必要に応じて指定してください。
詳細については、"4.3.2 DB動作環境定義の作成"を参照してください。
DBクライアント側でDBサービス定義を作成します。
DBサービス定義を設定します。DBサービス定義の文法については、"第8章 DBサービス定義"を参照してください。
ローカル接続とリモート接続では、STOREGROUP定義文のDATABASEオペランドに指定する内容が異なります。
ローカル接続の場合は、Oracleインスタンス識別子を指定します。
例を以下に示します。
DATABASE = ORCL |
指定方法は2種類あります。
DBクライアントの設定により作成したtnsnames.oraファイルで示すネット・サービス名を指定します。
例を以下に示します。
DATABASE = DB1 |
DBサーバのホスト名、ポート番号、サービス名を直接指定します。
例を以下に示します。
DATABASE = sv1:1521/ORCL |
なお、DBサーバのホスト名やサービス名にドメイン名(".~.com"など)を含むことにより128バイトを超える場合、この指定は使えません。ネット・サービス名を使用してください。
DBクライアント側で逐次差分反映を開始します。
逐次差分反映の開始は、lxrtmdbコマンドにより行います。詳細については、"7.3.4 lxrtmdbコマンド"を参照してください。
リモート接続では、データベースの認証機構のみ使用可能であるため、lxrtmdbコマンドには-uオプションを指定する必要があります。
例を以下に示します。
lxrtmdb -s DBSVC1 -r STRGRP1 -o -u user1/passwd1 |