3 Oracle Database Gateway for Sybaseの構成
ゲートウェイのインストール後、次のタスクを実行してOracle Database Gateway for Sybaseを構成します。
3.1 ゲートウェイ初期化パラメータ・ファイルの構成
3.1.1 ゲートウェイ用のシステム識別子の選択
ゲートウェイ・システム識別子(SID)は、ゲートウェイ・インスタンスを識別する英数字の文字列です。アクセスするSybaseデータベースごとに、1つのゲートウェイ・インスタンスが(したがって1つのゲートウェイSIDが)必要です。SIDは、初期化パラメータ・ファイルのファイル名の一部として使用されます。デフォルトのSIDはdg4sybs
です。
任意のゲートウェイSIDを定義できますが、デフォルトのdg4sybs
を使用する方が、初期化パラメータ・ファイルの名前を変更する必要がないため便利です。ただし、2つのSybaseデータベースにアクセスする場合は、ゲートウェイのインスタンスごとに1つずつ、合計2つのゲートウェイSIDが必要です。Sybaseデータベースが1つのみ存在し、そのアクセスに使用するゲートウェイ・パラメータ設定のセットを状況に応じて使い分ける場合、単一のSybaseデータベースに対して複数のゲートウェイSIDが必要です。
3.1.2 初期化パラメータ・ファイルのカスタマイズ
初期化パラメータ・ファイルは、ゲートウェイの起動時に使用できる必要があります。インストール時に、次のデフォルトの初期化パラメータ・ファイルが作成されます。
$ORACLE_HOME/dg4sybs/admin/initdg4sybs.ora
ここで、$
ORACLE_HOME
は、ゲートウェイのインストール先のディレクトリです。
この初期化ファイルは、デフォルトのゲートウェイSID用です。ゲートウェイSIDとしてdg4sybs
を使用していない場合、前のステップの「ゲートウェイ用のシステム識別子の選択」で指定したSIDを使用して初期化パラメータ・ファイルの名前を変更する必要があります。このデフォルトの初期化パラメータ・ファイルは、ゲートウェイの起動、正常なインストールの確認およびデモンストレーション・スクリプトの実行用としては十分です。
複数の初期化パラメータを使用して、ゲートウェイの動作を変更できます。設定可能な初期化パラメータの完全なリストは、「初期化パラメータ」を参照してください。初期化パラメータに加えた変更は、次のゲートウェイ・セッションまで反映されません。最も重要なパラメータは、Oracle以外のシステムに対する接続を記述するHS_FDS_CONNECT_INFO
,です。
デフォルトの初期化パラメータ・ファイルには、このパラメータのエントリがすでに含まれています。HS_FDS_CONNECT_INFO
の構文は、次のとおりです。
HS_FDS_CONNECT_INFO=host_name:port_number/database_name
説明:
変数 | 説明 |
---|---|
|
Sybaseデータベースをホストするマシンのホスト名またはIPアドレス。 |
|
Sybaseデータベース・サーバーのポート番号。 |
|
Sybaseデータベースの名前。 |
このリリースのゲートウェイはIPv6をサポートできます。IPv6アドレス形式を指定する場合は、角カッコで囲んでポート番号との区切りを示す必要があります。たとえば、
HS_FDS_CONNECT_INFO=[2001:0db8:20C:F1FF:FEC6:38AF]:1300/my_db
関連項目:
初期化パラメータ・ファイルのカスタマイズの詳細は、「初期化パラメータ」および『Oracle Database Heterogeneous Connectivityユーザーズ・ガイド』を参照してください。
3.2 ゲートウェイ用のOracle Netの構成
ゲートウェイでは、Oracle Databaseと通信するためにOracle Netが必要です。ゲートウェイの構成後、次のタスクを実行して、ゲートウェイと連携動作するようにOracle Netを構成します。
3.2.1 ゲートウェイ用のOracle Net Listenerの構成
Oracle Net Listenerは、Oracle Databaseからの着信リクエストをリスニングします。Oracle Net Listenerでゲートウェイをリスニングするためには、ゲートウェイに関する情報をOracle Net Listenerの構成ファイル(listener.ora
)に追加する必要があります。このファイルのデフォルトの場所は、$
ORACLE_HOME/network/admin
になります。$ORACLE_HOME
はゲートウェイのインストール先のディレクトリです。
次のエントリをlistener.ora
ファイルに追加する必要があります。
-
Oracle Net ListenerがリスニングするOracle Netアドレスのリスト
-
Oracle Net Listenerが着信接続リクエストに応じて起動するゲートウェイの実行可能ファイルの名前
listener.ora
エントリのサンプル(listener.ora.sample
)は、$ORACLE_HOME/dg4sybs/admin
ディレクトリにあります。$
ORACLE_HOME
はゲートウェイのインストール先のディレクトリです。
3.2.1.1 listener.oraファイルのエントリの構文
Oracle Databaseは、Oracle Netおよびサポートされている任意のプロトコル・アダプタを使用してゲートウェイと通信します。次に、TCP/IPプロトコル・アダプタを使用してOracle Net Listenerがリスニングするアドレスの構文を示します。
LISTENER= (ADDRESS= (PROTOCOL=TCP) (HOST=host_name) (PORT=port_number))
説明:
変数 | 説明 |
---|---|
|
ゲートウェイがインストールされているマシンの名前。IPv6形式は、このリリースでサポートされています。詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。 |
|
Oracle Net Listenerにより使用されるポート番号。同じマシン上で稼働する他のリスナーが存在する場合、port_numberの値は、他のリスナーのポート番号とは異なる必要があります。 |
着信接続リクエストに応じてゲートウェイを起動するようOracle Net Listenerを構成するには、listener.ora
ファイルにエントリを追加します。
ノート:
listener.oraファイルと次のステップで構成するtnsnames.ora
ファイルで同じSID値を使用する必要があります。
AIX、Solaris(SPARC)およびLinuxの場合:
SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=gateway_sid) (ORACLE_HOME=oracle_home_directory) (PROGRAM=dg4sybs) ) )
HP-UX Itaniumの場合:
SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=gateway_sid) (ORACLE_HOME=oracle_home_directory) (ENVS=LD_LIBRARY_PATH=oracle_home_directory/dg4sybs/driver/lib:oracle_home_directory/lib) (PROGRAM=dg4sybs) ) )
説明:
変数 | 説明 |
---|---|
|
ゲートウェイのSIDを指定します。 |
|
ゲートウェイが存在するOracleホーム・ディレクトリを指定します。 |
|
Oracle Database Gateway for Sybaseの実行可能ファイル名を指定します。 |
既存のOracle Net Listenerがすでに存在する場合、既存のlistener.ora
ファイルのSID_LIST
に次の構文を追加します。
AIX、Solaris(SPARC)およびLinuxの場合:
SID_LIST_LISTENER= (SID_LIST= (SID_DESC=. . ) (SID_DESC=. . ) (SID_DESC= (SID_NAME=gateway_sid) (ORACLE_HOME=oracle_home_directory) (PROGRAM=dg4sybs) ) )
HP-UX Itaniumの場合:
SID_LIST_LISTENER= (SID_LIST= (SID_DESC=. . ) (SID_DESC=. . ) (SID_DESC= (SID_NAME=gateway_sid) (ORACLE_HOME=oracle_home_directory) (ENVS=LD_LIBRARY_PATH=oracle_home_directory/dg4sybs/driver/lib:oracle_home_directory/lib) (PROGRAM=dg4sybs) ) )
関連項目:
listener.ora
ファイルの変更方法の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
3.3 ゲートウェイ・アクセス用のOracle Databaseの構成
ゲートウェイを使用してSybaseデータにアクセスする前に、Oracle Databaseを構成してOracle Netを通じたゲートウェイとの通信を使用可能にする必要があります。
Oracle Databaseを構成するには、tnsnames.ora
ファイルに接続記述子を追加する必要があります。デフォルトでは、このファイルの場所は$ORACLE_HOME/network/admin
になります。$ORACLE_HOME
はOracle Databaseのインストール先のディレクトリです。tnsnames.ora
ファイルの構成にOracle Net AssistantやOracle Net Easy Configツールを使用することはできません。手動でファイルを編集する必要があります。
tnsnames.ora
エントリのサンプル(tnsnames.ora.sample
)は、$ORACLE_HOME/dg4sybs/admin
ディレクトリにあります。$
ORACLE_HOME
はゲートウェイのインストール先のディレクトリです。
3.3.1 tnsnames.oraの構成
ゲートウェイの接続記述子を追加するには、tnsnames.ora
ファイルを編集します。次に、TCP/IPプロトコルを使用するOracle Netエントリの構文を示します。
connect_descriptor= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=host_name) (PORT=port_number) ) (CONNECT_DATA= (SID=gateway_sid)) (HS=OK))
説明:
変数 | 説明 |
---|---|
|
データベース・リンクの作成時に指定された接続先オブジェクトの記述(
ノート: sqlnet.oraファイルは、通常、 |
|
TCP/IP接続に使用されるTCPプロトコルです。 |
|
ゲートウェイが稼働しているマシンを指定します。 |
|
ゲートウェイをリスニングしているOracle Net Listenerにより使用されるポート番号と一致させます。Oracle Net Listenerのポート番号は、Oracle Net Listenerにより使用される |
|
ゲートウェイのSIDを指定し、ゲートウェイをリスニングするOracle Net Listenerの |
|
この接続記述子でOracle以外のシステムに接続することを指定します。 |
関連項目:
tnsnames.ora
の変更の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
3.3.2 tnsnames.oraファイルの複数のリスナー用の構成
高可用性を確保するために、接続ディスクリプタ内で複数のリスナーを指定できます。
connect_descriptor= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=host_name_1) (PORT=port_number_1) ) (ADDRESS= (PROTOCOL=TCP) (HOST=host_name_2) (PORT=port_number_2) ) (CONNECT_DATA= (SID=gateway_sid)) (HS=OK))
これは、host_name_1
とport_number_1
のリスナーが使用できない場合に、host_name_2
とport_number_2
の2番目のリスナーが引き継ぐことを示しています。
関連項目:
tnsnames.ora
ファイルの編集の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
3.4 データベース・リンクの作成
Oracle Databaseに接続されたすべてのOracleクライアントは、ゲートウェイを通じてSybaseデータにアクセスします。OracleクライアントとOracle Databaseは、異なるマシン上に存在できます。ゲートウェイは、Oracle Databaseからの接続のみを受け入れます。
ゲートウェイへの接続は、Oracleセッションでゲートウェイが初めて使用されるときに、データベース・リンクを介して確立されます。この場合の接続とは、Oracle Databaseとゲートウェイ間の接続を示します。接続は、Oracleセッションが終了するまで確立されたままです。別のセッションまたはユーザーが同じデータベース・リンクにアクセスし、ゲートウェイおよびSybaseデータベースに対する別個の接続を取得することも可能です。
データベース・リンクは、ゲートウェイ・セッションの継続中はアクティブです。セッション中にデータベース・リンクをクローズする場合は、ALTER SESSION
文を使用します。
Sybaseサーバーにアクセスするには、データベース・リンクを作成する必要があります。パブリック・データベース・リンクは、最も一般的なデータベース・リンクです。
SQL> CREATE PUBLIC DATABASE LINK dblink CONNECT TO 2 "user" IDENTIFIED BY "password" USING 'tns_name_entry';
説明:
変数 | 説明 |
---|---|
|
完全なデータベース・リンク名。 |
|
ゲートウェイを識別する |
データベース・リンクの作成後に、次のようにSybaseデータベースへの接続を確認できます。
SQL> SELECT * FROM DUAL@dblink;
関連項目:
データベース・リンクの使用の詳細は、『Oracle Database管理者ガイド』および『Oracle Database Heterogeneous Connectivityユーザーズ・ガイド』を参照してください。
3.5 2フェーズ・コミットの構成
-
COMMIT_CONFIRM
-
READ_ONLY
-
SINGLE_SITE
トランザクション・モデルは、HS_TRANSACTION_MODEL
初期化パラメータを使用して設定されます。デフォルトでは、ゲートウェイはCOMMIT_CONFIRM
トランザクション・モードで実行されます。Sybaseデータベースがトランザクションによって更新されると、ゲートウェイはコミット・ポイント・サイトになります。Oracle Databaseは、トランザクションに関連するすべてのOracle Databaseがトランザクションの準備に成功したことを確認してから、Sybaseデータベースの作業ユニットをコミットします。Oracleの2フェーズ・コミット・トランザクションにコミット・ポイント・サイトとして参加できるのは、ただ1つのゲートウェイ・インスタンスのみです。
関連項目:
2フェーズ・コミット・プロセスの詳細は、『Oracle Database Heterogeneous Connectivityユーザーズ・ガイド』を参照してください。
COMMIT_CONFIRM
トランザクション・モードを有効化するには、次のタスクを実行します。
HS_TRANSACTION_LOG
というログ表に、2フェーズ・コミット・トランザクションが記録されます。または、ゲートウェイ初期化パラメータHS_FDS_TRANSACTION_LOG
パラメータを設定して、別の表名を指定することもできます。この表は、リカバリ・アカウントと同じスキーマにある必要があります。
3.5.1 リカバリ・アカウントおよびパスワードの作成
ゲートウェイで分散トランザクションをリカバリするには、Sybaseデータベースでリカバリ・アカウントおよびパスワードを設定する必要があります。デフォルトでは、アカウントのユーザー名とパスワードはどちらもRECOVER
です。アカウント名は、ゲートウェイ初期化パラメータHS_FDS_RECOVERY_ACCOUNT
で変更できます。アカウント・パスワードは、ゲートウェイ初期化パラメータHS_FDS_RECOVERY_PWD
で変更できます。
ノート:
デフォルト値のRECOVER
は、ユーザー名とパスワードに使用しないことをお薦めします。また、ユーザー名とパスワードを初期化ファイルにプレーン・テキストで保存するのは、セキュリティ・ポリシーとして適切ではありません。現在、暗号化に使用する必要のあるdg4pwd
というユーティリティがあります。詳細は、『Oracle Database Heterogeneous Connectivityユーザーズ・ガイド』の初期化パラメータの暗号化に関する項を参照してください。
3.5.2 トランザクション・ログ表の作成
2フェーズ・コミット用にゲートウェイを構成する場合、Sybaseデータベースにトランザクション・ロギングのための表を作成する必要があります。ゲートウェイでは、このトランザクション・ログ表を使用して、ゲートウェイによりSybaseデータベースで開始され、表に登録された障害トランザクションのステータスを確認します。
ノート:
トランザクション・ログ表への更新は、Oracle分散トランザクションの一部として実行することはできません。
ノート:
トランザクション・ログ表の情報は、リカバリ・プロセスで必要とされるため、絶対に変更しないでください。この表は、ゲートウェイによってのみ使用、アクセスまたは更新される必要があります。
HS_TRANSACTION_LOG
という表は、データ型CHAR(64) NOT NULL
のGLOBAL_TRAN_ID
列と、データ型CHAR(255)
のTRAN_COMMENT
列で構成されます。
ログ表にHS_TRANSACTION_LOG
以外の名前を使用するには、HS_FDS_TRANSACTION_LOG
初期化パラメータを使用して別の名前を指定します。
関連項目:
HS_FDS_TRANSACTION_LOG
初期化パラメータの詳細は、「初期化パラメータ」を参照してください。
トランザクション・ログ表は、「リカバリ・アカウントおよびパスワードの作成」で作成したユーザー・アカウントで作成します。トランザクション・ログ表は、ゲートウェイ・トランザクションのステータスの記録に使用されるため、Sybaseの更新処理が行われるデータベースに存在する必要があります。また、トランザクション・ログ表は、リカバリ・アカウントの所有者で作成される必要があります。
ノート:
トランザクション・ログ表を使用するには、表に対する権限がゲートウェイのユーザーに付与されている必要があります。
トランザクション・ログ表を作成するには、$ORACLE_HOME/dg4sybs/admin
ディレクトリにあるdg4sybs_tx.sql
スクリプトを使用します。$ORACLE_HOME
はゲートウェイのインストール先のディレクトリです。isqlを使用して次のようにスクリプトを実行します。
$ isql -Urecovery_account -Precovery_account_password [-Sserver] -idg4sybs_tx.sql
3.6 データ・ディクショナリ・サポート用のSybaseビューの作成
Oracleデータ・ディクショナリ変換サポートを有効化するには、$ORACLE_HOME/dg4sybs/admin
ディレクトリにあるdg4sybs_cvw.sql
スクリプトを使用します。$ORACLE_HOME
はゲートウェイのインストール先のディレクトリです。ゲートウェイを通じてアクセスするSybaseデータベースごとにこのスクリプトを実行する必要があります。isqlを使用して次のようにスクリプトを実行します。
$ isql -Usa_user -Psa_pwd [-Sserver] [-Ddatabase] -e -i dg4sybs_cvw.sql
sa_user
とsa_pwd
は、それぞれSybaseのシステム管理者のユーザーIDとパスワードです。
3.7 ゲートウェイ初期化パラメータ値の暗号化
ゲートウェイでは、ユーザーIDとパスワードを使用してリモート・データベースの情報にアクセスします。ユーザーIDおよびパスワードは、リソース・リカバリなどの機能を処理するために、ゲートウェイ初期化ファイルで定義される場合があります。セキュリティを意識した現在の環境では、初期化ファイルでアクセス可能なプレーン・テキスト・パスワードは、セキュアではないとみなされます。セキュリティを向上するために、異機種間サービスの一部としてdg4pwd
暗号化ユーティリティが追加されました。このユーティリティには、このゲートウェイからアクセスできます。機密値を含む初期化パラメータは、暗号化された形式で格納できます。
関連項目:
このユーティリティの使用方法の詳細は、『Oracle Database Heterogeneous Connectivityユーザーズ・ガイド』を参照してください。
3.8 複数のSybaseデータベースにアクセスするためのゲートウェイの構成
複数のSybaseデータベースにアクセスするためのゲートウェイの構成作業は、単一のデータベースを対象とするゲートウェイの構成作業とほぼ同じです。構成の例では、次のことを想定しています。
-
ゲートウェイがデフォルトのSIDである
dg4sybs
を使用してインストールおよび構成されていること -
ORACLE_HOME
環境変数がゲートウェイのインストール先のディレクトリに設定されていること -
ゲートウェイが
db1
という1つのSybaseデータベース用に構成されていること -
IPアドレスが204.179.79.15であるホストに
db2
およびdb3
という2つのSybaseデータベースが追加されること
3.8.1 複数のSybaseデータベースの例: ゲートウェイの構成
Sybaseデータベースごとに1つのシステムIDを選択
Sybaseデータベースごとにゲートウェイの個別のインスタンスが必要です。各インスタンスには、固有のゲートウェイ・システムID(SID)が必要です。この例では、Sybaseデータベースにアクセスするインスタンスに対して次のゲートウェイSIDが選択されます。
-
dg4sybs2
(データベースdb2
にアクセスするゲートウェイ用) -
dg4sybs3
(データベースdb3
にアクセスするゲートウェイ用)
2つの初期化パラメータ・ファイルの作成
ゲートウェイのインスタンスごとに初期化パラメータ・ファイルを作成するため、元の初期化パラメータ・ファイル $ORACLE_HOME/dg4sybs/admin/initdg4sybs.ora
を2回コピーします。次のように、1つのファイルにはdb2
のゲートウェイSIDを含む名前を付け、もう1つのファイルにはdb3
のゲートウェイSIDを含む名前を付けます。
$ cd $ORACLE_HOME/dg4sybs/admin $ cp initdg4sybs.ora initdg4sybs2.ora $ cp initdg4sybs.ora initdg4sybs3.ora
各新規ファイルのHS_FDS_CONNECT_INFO
パラメータの値を変更します。
init
dg4sybs
2.ora
の場合は、次のように入力します。
HS_FDS_CONNECT_INFO=204.179.79.15:5000/db2
init
dg4sybs
3.ora
の場合は、次のように入力します。
HS_FDS_CONNECT_INFO=204.179.79.15:5000/db3
ノート:
状況に応じて異なるゲートウェイ・パラメータ設定を使用するために、同じSybaseデータベースに対して複数のゲートウェイSIDを割り当てる場合も、同じ手順に従ってください。複数の初期化パラメータ・ファイルを作成し、それぞれに異なるSIDおよび異なるパラメータ設定を使用します。
3.8.2 複数のSybaseデータベースの例: Oracle Net Listenerの構成
listener.oraへのエントリの追加
Oracle Net Listener構成ファイル listener.ora
に、2つの新規エントリを追加します。複数のゲートウェイ・インスタンスが同じデータベースにアクセスする場合でも、ゲートウェイ・インスタンスごとに1つのエントリが必要です。
次の例では、最初にインストールされた元のゲートウェイ用のエントリの次に、新規エントリが続いています。
SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=dg4sybs) (ORACLE_HOME=oracle_home_directory) (PROGRAM=dg4sybs) ) (SID_DESC= (SID_NAME=dg4sybs2) (ORACLE_HOME=oracle_home_directory) (PROGRAM=dg4sybs) ) (SID_DESC= (SID_NAME=dg4sybs3) (ORACLE_HOME=oracle_home_directory) (PROGRAM=dg4sybs) ) )
ここで、oracle_home_directory
は、ゲートウェイが存在するディレクトリです。
3.8.3 複数のSybaseデータベースの例: Oracle Net Listenerの停止および起動
リスナーがすでに実行中の場合、次のようにlsnrctl
コマンドを使用してリスナーを停止し、新規設定を使用して起動します。
$ lsnrctl stop $ lsnrctl start
3.8.4 複数のSybaseデータベースの例: ゲートウェイ・アクセス用のOracle Databaseの構成
3.8.4.1 複数のゲートウェイ・インスタンス用のOracle Netの構成
2つの接続記述子エントリをtnsnames.ora
ファイルに追加します。複数のゲートウェイ・インスタンスが同じデータベースにアクセスする場合でも、ゲートウェイ・インスタンスごとに1つのエントリが必要です。
次のSybaseの例では、最初にインストールされた元のゲートウェイ用のエントリの次に、新規ゲートウェイ・インスタンス用の2つのエントリが続いています。
old_db_using=(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (PORT=port_number) (HOST=host_name)) (CONNECT_DATA= (SID=dg4sybs)) (HS=OK)) new_db2_using=(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (PORT=port_number) (HOST=host_name)) (CONNECT_DATA= (SID=dg4sybs2)) (HS=OK)) new_db3_using=(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (PORT=port_number) (HOST=host_name)) (CONNECT_DATA= (SID=dg4sybs3)) (HS=OK))
PORT
の値は、ゲートウェイをリスニングしているOracle Net ListenerのTCP/IPポート番号です。この番号は、Oracle Net Listenerにより使用されるlistener.ora
ファイルで確認できます。HOST
の値は、ゲートウェイが稼働しているマシンの名前です。この名前も、Oracle Net Listenerにより使用されるlistener.ora
ファイルで確認できます。
3.8.5 複数のSybaseデータベースの例: Sybaseデータへのアクセス
次のように入力してdg4sybs2
ゲートウェイ用のデータベース・リンクを作成します。
SQL> CREATE PUBLIC DATABASE LINK SYBS2 CONNECT TO 2 "user2" IDENTIFIED BY "password2" USING 'new_db2_using';
次のように入力してdg4sybs3
ゲートウェイ用のデータベース・リンクを作成します。
SQL> CREATE PUBLIC DATABASE LINK SYBS3 CONNECT TO 2 "user3" IDENTIFIED BY "password3" USING 'new_db3_using';
データベース・リンクの作成後に、次のように新規Sybaseデータベースへの接続を確認できます。
SQL> SELECT * FROM ALL_USERS@SYBS2;
SQL> SELECT * FROM ALL_USERS@SYBS3;