| Oracle® Databaseインストレーションおよび構成ガイド 11gリリース2 (11.2) for Fujitsu BS2000/OSD E49830-02 |
|
![]() 前 |
![]() 次 |
この章では、Oracle Net ServicesおよびBS2000/OSD環境への実装について説明します。次の項目について、『Oracle Database Net Services管理者ガイド』のBS2000/OSD固有の情報を補足します。
Oracle Net Servicesは、クライアント・アプリケーションと各種のオペレーティング・システム上で実行中のリモートまたはローカルのデータベース間のネットワーク通信をサポートします。
Oracle Net Servicesでは、データベース・サーバーおよびクライアント・アプリケーション(またはクライアントとして機能するサーバー)の別々のシステム上での実行を可能にし、ネットワーク上のノード間でのデータの移動手段を提供します。たとえば、UNIXまたはWindowsユーザーは、BS2000システム上で稼働しているリモートのOracle Databaseのデータにアクセスおよび操作するアプリケーションを実行できます。
Oracle Net Servicesは、クライアントおよびデータベースが同じシステム上で稼働している場合に、プロセス間通信にも使用されます。
この項では、プロセス間コールをサポートするためのOracleのプロセス間通信(IPC)について説明します。これは、IPCの機能をOracleのNet Foundationレイヤーにマップするために使用されます。IPCプロトコルはネイティブBS2000のみでサポートされています。POSIXシェル上で実行中のOracleユーティリティおよび製品は、IPCプロトコルを使用できません。
BS2000システムでは、IPCプロトコルはローカルのプロセス間通信に使用されます。Oracle Protocol Support for IPCは、BS2000ソケットのISO機能を使用します。
クライアント・プロセスは、リスニング・プロセスを記述するKEYを指定することによって、リモート・プロセスとのIPC接続を開始します。接続が確立されると、2つの通信プロセスは連続的なバイト・ストリームを介してデータを送信および受信します。
IPCプロトコルでは、アプリケーションのローカル・ホスト上のプロセス間通信方式との統合が可能です。IPCプロトコルを使用した構文を次に示します。
(ADDRESS=
(PROTOCOL=IPC)
(KEY=alphanumeric)
)
各パラメータの意味は次のとおりです。
PROTOCOLは、サポートされるプロトコルを指定します。IPCの場合、値はIPCです。
KEYは、リスニング・エンドポイントを指定します。32文字以下の文字列([a...z], [A...Z], [0...9], '.', '-', '_', '$')です。
ローカル・ホスト上のサーバーを指定するIPC ADDRESSの例を次に示します。
(ADDRESS=
(PROTOCOL=IPC)
(KEY=ORCL)
)
|
注意: IPCプロトコルはPOSIXシェルではサポートされていません。POSIXシェルで実行中のユーティリティまたはユーザー・アプリケーションによってIPCプロトコルが指定された場合、Oracle Net Servicesは次のエラー・メッセージを表示してIPCプロトコルを使用しません。TNS-12557: TNS:protocol adapter not loadable |
この項では、TCP/IPの機能をOracleのNet Foundationレイヤーにマップするために使用されるOracleのTCP/IPプロトコル・サポートについて説明します。
TCP/IPは、関連するプロトコルのファミリであり、2つのメイン・コンポーネントであるTransmission Control Protocol (TCP)およびInternet Protocol (IP)から名前が導出されています。IPコンポーネントはネットワーク上の情報をディスパッチし、TCPコンポーネントは、1点から他点への信頼できるデータ転送を保証します。
TCP/IPプロトコルの最上位に位置するアプリケーション・ソフトウェアは、ネットワークを2方向のデータ転送媒体としてとらえます。この媒体では、相互に接続されたコンピュータ・ネットワークにアタッチされたホスト・コンピュータ内のプロセスのペア間に、接続型の方法でプロセス間通信を提供します。
アプリケーションまたはクライアント・プロセスは、アドレス・ペアを指定することによって、リモート・ホスト・プロセスとのTCP/IP接続を開始します。
ホストのIPアドレス
ホスト上のTCPポート(またはエントリ・ポイント)
接続が確立されると、通信プロセスのペアは連続的なバイト・ストリームを介してデータを送信および受信します。TCP/IPプロトコルは、BS2000およびPOSIXシェルでサポートされています。
TCP/IPプロトコル・サポートは、TCP/IPプロトコルとOracleのNet Foundationレイヤー間で同等の通信機能の解決に使用される標準のインタフェースを実装します。
特定のシステムにTCP/IPプロトコルがインストールされた後に、TNS接続記述子を指定したTCP/IP固有のパラメータを使用して、TCP/IPベースのコミュニティ内でノードを識別します。
特定のTCP/IP接続パラメータは、ADDRESSキーワード値ペアの一部です。3つのTCP/IP固有のパラメータは、ADDRESSコンストラクト内に任意の順序で入力できます。OracleのTCP/IPプロトコル・サポートで使用される構文は次のとおりです。
(ADDRESS=
(PROTOCOL=TCP)
(HOST=hostname)
(PORT=port#)
)
各パラメータの意味は次のとおりです。
PROTOCOLは、サポートされるプロトコルを指定します。TCP/IPの場合、値はTCPです。
HOSTは、ホスト名またはホストのIPアドレスを指定します。
PORTは、TCP/IPポート番号を指定します。
sales-serverホスト上のクライアントを指定するTCP/IP ADDRESSの例を次に示します。
(ADDRESS=
(PROTOCOL=TCP)
(HOST=sales-server)
(PORT=1521)
)
Bequeath技術では、ネットワーク・リスナーを使用せずにクライアントをデータベースに接続できます。OracleのBequeathプロトコルによって、各クライアント・アプリケーション用のサーバー・プロセスが内部的に生成されます。リモート・ネットワーク・リスナーが行っているのと同じ操作を、ローカルの接続で実行します。
|
注意: Oracle Database 10g以降、BEQプロトコルはハンドオフ技術を使用することで、前のバージョンのBEQプロトコルと互換性がなくなりました。この機能拡張の結果、Oracle Database 11gアプリケーションはOracle Database 10gより前のバージョンのプロセスを直接生成できなくなり、BEQプロトコルを介して接続できません。 |
Bequeathプロトコルの概要は次のとおりです。
ネットワーク・リスナーを使用しません(そのためリスナー構成が不要です)。
専用サーバーを自動的に生成します。
SQL*PlusなどのOracle Databaseクライアントが同じコンピュータ上で実行中のOracle Databaseインスタンスと通信する場合のローカル接続に使用されます。
専用サーバー・モードでのみ動作します。共有サーバー・モードでは使用できません。
|
注意: クライアントがDBAユーザーIDとは異なるIDで実行されている場合、ネット・サービス名を使用し、リスナーを介して目的のデータベースに接続することをお薦めします。 |
共有サーバー・アーキテクチャを制御する初期化パラメータは次のとおりです。
共有サーバー・アーキテクチャの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
共有サーバー・アーキテクチャおよび専用サーバー・アーキテクチャは、インスタンス内で同時に機能できます。接続アプリケーションで共有サーバー・アーキテクチャと専用サーバー・アーキテクチャのどちらを使用するかを示す情報を接続記述子に指定します。デフォルトでは、リスナー・プロセスは共有サーバー・アーキテクチャを使用しますが、アプリケーションに専用サーバー・アーキテクチャをかわりに使用させる必要がある場合は、SQLNET.ORAファイルでUSE_DEDICATED_SERVER=ONを設定するか、使用しているネーミング・メソッドでパラメータSERVERにnet_service_nameを指定する必要があります。SQLNET.ORAパラメータのUSE_DEDICATED_SERVER=ONは、パラメータSERVERを上書きします。
特別に定義されたネット・サービス名を使用して、共有サーバー構成で専用サーバーを参照する方法の例を次に示します。
FINANCE_DED=(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=sales-server)
(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.acme.com)
(SERVER=dedicated)))
詳細は、『Oracle Database Net Servicesリファレンス』ガイドを参照してください。
共有サーバー・アーキテクチャまたは専用サーバー・アーキテクチャのどちらを使用するかを選択する際に、CPUオーバーヘッドとリソース割当て(タスク、メモリーなど)を対比検討する必要があります。多くのクライアントがごくまれにOracle Databaseを操作する必要があるような状況では、共有サーバー・アーキテクチャの使用が適していますが、ごくわずかのクライアントが定期的にOracle Databaseを操作する必要があるような状況では、専用サーバー・アーキテクチャの使用が適しています。これらの例のように、判断が常に明確であるとはかぎりません。この場合、次の共有サーバーの動的表の情報を使用して、判断に役立てることができます。
V$DISPATCHER
V$QUEUE
V$SHARED_SERVERS
V$SHARED_SERVER_MONITOR
これらの表の詳細は、『Oracle Database管理者ガイド』を参照してください。
このリリースでは、Oracle Advanced Securityのデータの整合性サービスおよび暗号サービスがサポートされています。Secure Sockets Layer (SSL)プロトコルもサポートされています。SSLでは公開鍵インフラストラクチャ(PKI)を使用して、認証、暗号化およびデータの整合性を実現しています。SSLは、証明書や秘密鍵などの認証データをOracle Walletに格納します。
データの整合性サービスまたは暗号サービスあるいはその両方を使用する場合は、SQLNET.ORAファイルに適切なパラメータを指定する必要があります。
次のパラメータを使用して、サービス(例: crypto-checksummingまたはencryption)をアクティブにするかどうかを指定します。
SQLNET.CRYPTO_CHECKSUM_CLIENT SQLNET.CRYPTO_CHECKSUM_SERVER SQLNET.ENCRYPTION_CLIENT SQLNET.ENCRYPTION_SERVER
前述の各パラメータのデフォルトはREJECTEDです。
前述の各パラメータには、次の値のうちの1つを設定できます。
| 値 | 意味 |
|---|---|
ACCEPTED |
一方の接続側でREQUESTEDまたはREQUIREDが指定されており、互換性のあるアルゴリズムが使用可能になっている場合、サービスはアクティブになります。それ以外の場合は、アクティブにはなりません。 |
REJECTED |
サービスはアクティブにはならず、一方の接続側でREQUIREDが指定されている場合、接続は失敗します。 |
REQUESTED |
一方の側でACCEPTED、REQUESTEDまたはREQUIREDが指定されており、互換性のあるアルゴリズムが使用可能になっている場合、サービスはアクティブになります。それ以外の場合は、アクティブにはなりません。 |
REQUIRED |
サービスはアクティブになり、一方の接続側でREJECTEDが指定されている場合、または互換性のあるアルゴリズムがない場合、接続は失敗します。 |
次のパラメータを使用して、接続の両側の各サービスで使用可能にするアルゴリズムを制御します。
SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER SQLNET.ENCRYPTION_TYPES_CLIENT SQLNET.ENCRYPTION_TYPES_SERVER
これらのパラメータの各値は、カンマで区切られてカッコで括られたアルゴリズム名のリストまたは単一のアルゴリズム名のいずれかです。
デフォルトの暗号化のチェックサム・タイプはMD5で、この暗号化はすべてのアルゴリズムにデフォルト設定されます。
| タイプ | 値 |
|---|---|
| 暗号化チェックサム・タイプ | SHA1、MD5 |
| 暗号化タイプ | AES256、RC4_256、AES192、3DES168、AES128、RC4_128、3DES112、RC4_56、DES、RC4_40、DES40 |
パラメータSQLNET.CRYPTO_SEEDを使用して、暗号化鍵の生成時に使用する文字を指定します。文字がランダムなほど、鍵が強力になります。文字列は10から70文字のランダムな文字にする必要があります。これは、暗号化またはチェックサムがオンの場合に必要です。
SQLNET.CRYPTO_SEED="qwertyuiopasdfghjkl;zxcvbnm,.s1"
詳細は、『Oracle Database Net Services管理者ガイド』、『Oracle Database Net Servicesリファレンス』および『Oracle Database Advanced Security管理者ガイド』を参照してください。
次に例を示します。
SQLNET.CRYPTO_CHECKSUM_CLIENT=required SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(md5) SQLNET.ENCRYPTION_CLIENT=accepted SQLNET.ENCRYPTION_TYPES_CLIENT=(aes192,3des168,rc4_128) SQLNET.CRYPTO_SEED="qwertyuiopasdfghjkl;zxcvbnm,.s1"
簡易接続ネーミング・メソッドを使用してデータベースに接続できますが、データベース・アドレスの覚えやすい別名であり、各システムのLISTENER.ORAファイルに事前定義したアドレスと一致するサービス名を使用するようにクライアントを構成することをお薦めします。クライアントはこれらのアドレスを使用してネットワーク・リスナーに接続し、このリスナーが接続リクエストを必要なサービスにルーティングします。接続時に、クライアントは、接続先にサービス名を渡します。
LISTENER.ORAファイルは、システム上のサービスをリスニングするネットワーク・リスナーの動作を識別および制御します。このファイルには、ネットワーク・リスナーの記述子およびアドレス、リスナーがリスニングするサービスおよび各種の制御パラメータが含まれています。
クライアント構成は、ローカルのネーミング・パラメータ・ファイルTNSNAMES.ORAまたはLDAP準拠のディレクトリ・サーバーを介した送信先ネットワークのアドレスを含むネット・サービス名のリストを作成することによって完了します。クライアントおよび(他のデータベース・サーバーのクライアントである)データベース・サーバーは、接続時にネット・サービス名を使用します。
簡易接続ネーミング・メソッドは、TNSNAMES.ORA構成ファイルにサービス名を構成せずにデータベースへの接続に使用できます。簡易接続ネーミング・メソッドを使用するには、クライアントの構成ファイルのネーミング・アダプタnames.directory_pathのパラメータにEZCONNECTがリストされている必要があります。
簡易接続ネーミングは、小規模で単純な環境にのみ適しています。簡易接続ネーミング・メソッドの詳細は、『Oracle Database Net Services管理者ガイド』の簡易接続ネーミング・メソッドの使用に関する説明を参照してください。
ローカル・ネーミングは、TNSNAMES.ORA構成ファイル内の個別のクライアントに構成された情報を使用して、サービス名をネットワーク・アドレスに解決するための方法を参照します。ローカル・ネーミングを使用するには、クライアントの構成ファイルのネーミング・アダプタnames.directory_pathのパラメータにTNSNAMESがリストされている必要があります。
ローカル・ネーミングは、変更が少なく、サービスの数が少ない単純な分散ネットワークに非常に適しています。
ディレクトリ・ネーミングは、ディレクトリ・サーバーを使用して、サービス名をネットワーク・アドレスに解決するための方法を参照します。ディレクトリ・サーバーを使用するには、クライアントの構成ファイルのネーミング・アダプタnames.directory_pathのパラメータにLDAPがリストされていて、次のように、ディレクトリ・サーバーのターゲット・アドレスがパラメータ・ファイルLDAP.ORAに構成されている必要があります。
# LDAP.ORA Network Configuration File: network.admin.ldap.ora
DEFAULT_ADMIN_CONTEXT = ""
DIRECTORY_SERVERS= (oid_server:389:636)
DIRECTORY_SERVER_TYPE = Your Internet Directory
詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
次の手順に従ってOracle Names Methodを構成します。
リスナーを開始する前に、リスナーの構成ファイルLISTENER.ORAを設定する必要があります。このファイルには、リスナーのアドレスおよびリスナーが使用する各種の制御パラメータが含まれています。詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
BS2000システムでは、Oracle Databaseのタスク、特にPROCESSING-ADMISSIONで、実行中のジョブのユーザーIDとは異なるユーザーIDでジョブを開始するための追加のジョブ・パラメータを定義できます。この技術によって、システム上のすべてのOracleインスタンスで1つのリスナーのみを使用するという利点が提供されます。インスタンスを同じユーザーIDで実行する必要はありません。データベース・コンピュータで1つのリスナーのみを実行する場合は、リスナーの環境ファイルsid.P.ORAENVに次のパラメータを指定する必要があります。
| パラメータ | 意味 |
|---|---|
BGJPAR |
ENTERジョブ用のパラメータ |
sid_BGJPAR |
SIDによって識別されるENTER用のパラメータ |
sid_USER |
ジョブを実行するユーザーID |
user_ACCOUNT |
ターゲット・ユーザーIDのアカウント |
user_PASSWORD |
ターゲット・ユーザーIDのパスワード |
次の集中リスナー・プロセス用に構成されたORAENVファイルの例は、パラメータの動作方法を示します。このリスナーは、同じユーザーIDで動作するインスタンスとこのORAENVファイルを共有できます。理解しやすいように、リスナーおよびインスタンスDEMOおよびDEM1は、同じユーザーID ORACDEM1で実行され、インスタンスDEM2はユーザーID ORACDEM2で実行されていると想定します。次のパラメータを定義します。
BGJPAR=J-C=JCBORA,START=IMME,CPU-LIMIT=NO,LOGGING=*NO DEM1_BGJPAR=J-C=JCBDEM1,START=IMME,CPU-LIMIT=NO DEM2_USER=ORACDEM2 ORACDEM2_ACCOUNT=O1234 ORACDEM2_PASSWORD=ORACLE
リスナーは、パラメータsid_BGJPARおよびsid_USERを検索するために、常に同じ順序で実行されます。sid_BGJPARの値が見つからない場合は、リスナーは、パラメータBGJPARによって指定された値を使用します。ユーザーIDがsid_USERによって指定されている場合は、リスナーは、パラメータuser_ACCOUNTおよびuser_PASSWORDから処理の許可の取得を試みます。指定されたORAENVでは、リスナーに対して次のシナリオを使用します。
リスナーは、インスタンスDEMOに対してサーバーを開始する必要があります。パラメータDEMO_BGJPARおよびDEMO_USERが定義されていないため、リスナーは、BGJPARに定義されている開始パラメータを使用してユーザーID ORACDEM1でインスタンスDEMOのサーバーを開始します。
インスタンスDEM1のサーバーを開始する必要がある場合、リスナーはパラメータDEM1_BGJPARおよびDEM1_USERを検索します。この場合、パラメータDEM1_BGJPARは評価できますが、このパラメータが定義されていないため、DEM1_USERの評価は失敗します。そのため、リスナーは開始パラメータJ-C=JCBDEM1,START=IMME,CPU-LIMIT=NOをENTER-PROCEDUREコマンドに追加し、ユーザーID ORACDEM1でジョブを開始します。
ここで、インスタンスDEM2のサーバーが開始される必要があります。リスナーは、パラメータDEM2_BGJPARおよびDEM2_USERを検索します。パラメータDEM2_BGJPARは定義されていないため、リスナーはBGJPARに定義されている開始パラメータを使用します。一方、パラメータDEM2_USERは正常に評価でき、値ORACDEM2を返します。ここで、リスナーは、パラメータORACDEM2_ACCOUNTおよびORACDEM2_PASSWORDを評価することで処理の許可の取得を試みます。リスナーは、ユーザーID ORACDEM2で、ENTER-PROCEDUREにJ-C=JCBORA, START=IMME,CPU-LIMIT=NO,LOGGING=*NOを指定してサーバー・ジョブを開始します。
リスナー制御ユーティリティLSNRCTLを使用してリスナーを開始します。
/CALL-PROCEDUREsid.P.ORAENV/START-PROGRAM $ORAC1120.LSNRCTL
enter optionsプロンプトが表示されたら、[ENTER]を押してLSNRCTLプロンプトを表示させます。次のコマンドを入力して、リスナーを開始します。
LSNRCTL> START listener-name
ネットワーク・クライアントの構成には、クライアントの構成ファイルSQLNET.ORAおよび使用しているネーミング・メソッドによっては、構成ファイルLDAP.ORAまたはTNSNAMES.ORAのパラメータの追加または編集が必要です。構成パラメータの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。
ネットワーク接続の検証後、TNSPINGユーティリティを使用して、目的のOracle Databaseシステムへの接続を検証できます。
/CALL-PROCEDUREsid.P.ORAENV/START-PROGRAM $ORAC1120.TNSPING
enter optionsプロンプトが表示されたら、ネーミング・サービスで指定したデータベース・サービスのネット・サービス名を入力します。すべてが正常に動作した場合は、次のようなメッセージが返されます。
TNS Ping Utility for BS2000/OSD S series: Version 11.2.0.2.0 -Production on 12-JUN-2012 12:07:40Used parameter files: network.admin.sqlnet.oraUsed TNSNAMES adapter to resolve the aliasAttempting to contact (DESCRIPTION = (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = sales-server)(PORT = 3055)))(CONNECT_DATA = (SERVICE_NAME = sales.us.acme.com)))OK (40 msec)
詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
エラー・メッセージのリストおよびエラーを修正するための手順を次に示します。
リスナーを開始できませんでした。LSNRCTLが次のエラー・メッセージを返します。
LSNRCTL> start Starting /BS2/$ORAC1120.tnslsnr: please wait... TNS-12547: TNS:lost contact TNS-12560: TNS:protocol adapter error TNS-00517: Lost contact BS2000 Error: 145: Connection timed out LSNRCTL>
サブシステムのPOSIXが起動され実行中であることを確認します。
BCAMの軽量リゾルバであるLWRESDが適切に構成され、実行されていることを確認してください。
リスナーがログ・ファイルを開けませんでした。
リスナーのログ・ファイル(たとえばNETWORK.LOG.LISTENER.LOG)のアクセスと読取りが可能かどうかを確認します。
BS2000のSDFコマンドREPAIR-DISK-FILESを使用して、リスナーのログ・ファイルを検証します。
リスナーのログ・ファイルを修正できない場合は、ファイルを削除します。
クライアントがORA-12545を報告します。
クライアントがORA-12535を報告します。
IPCプロトコルを使用している場合は、BCAMの接続タイムアウト・パラメータを確認します(BCSHOWコマンドを使用)。このパラメータは600秒以上に設定する必要があります。
クライアントがORA-03113を報告します。
SQLNET.EXPIRE_TIMEパラメータがサーバーに設定されているかどうかを確認します。パラメータが設定されている場合は、BCSHOWコマンドを使用してBCAM LETTER-TIMERを確認します。LETTER-TIMEがSQLNET.EXPIRE_TIMEより短い場合は、クライアントが稼働しているかどうかを確認するためにサーバーによって送信されるデータが、LETTER-TIMEによって制限される有効期間中に読み取れない可能性があります。その結果、クライアントはSQLNET.LOGファイルに、Broken pipeを記録します。
ns main err code: 12547 ns (2) err code: 12560 nt main err code: 517 nt (2) err code: 32 nt OS err code: 0x0040002c
この問題は、LETTER-TIMERを無限に設定することによって解決できます。