Oracle Instant Clientに関するFAQ
質問
解答
Oracle Instant Clientとは何ですか。
Oracle Instant Clientとは、リモートの(またはローカルの)Oracle
Databaseに接続するアプリケーションを作成し、実行する際に有用なOracle
Databaseライブラリ、ツール、およびヘッダー・ファイルを再パッケージ化したものです。Instant
Clientは、OCI、OCCI、Pro*C、JDBC、ODBCアプリケーションのほか、PHPのOCI8、Pythonのcx_Oracle、
Node.jsのnode-oracledb、Rubyのruby-oci8
APIなどのスクリプト言語ドライバを実行するために使用できます。SDKパッケージによって、OCIやOCCI
APIを使用するCおよびC++プログラムのコンパイル用のヘッダー・ファイルが提供されます。SQL*Plus、Workload Replay
Client、Data Pump、SQL*Loaderなどのユーティリティも、Instant
Clientパッケージで利用可能です。入手可能なInstant Clientパッケージについては、
Oracle Instant Clientのホームページを参照してください。
Oracle Instant Clientを使用する理由を教えてください。
Oracle Instant
Clientの利点は、ZIPパッケージを解凍するだけで素早くインストールできることや、極めて容易にLinux
RPMパッケージをインストールできることです。Instant Clientのフットプリントは、完全なOracle
Clientのフットプリントと比較してはるかに少なくて済みます。他にも、再配布が可能なOTNライセンスの下で使用できることも利点として挙げられま
す。Instant Clientベースのアプリケーションは、キャッシュや接続プーリングなどのOracle
Client機能や、ネットワーク暗号化などのOracle Net機能を最大限に活用できます。Oracle
Databaseの大規模な機能や小規模な機能ももちろん使用できます。
Oracle Instant Clientのさまざまなデータベース・バージョンとの相互運用性とは何ですか。
Instant Clientベースのアプリケーションは、完全なOracle
Clientと相互運用性のあるあらゆるデータベース・バージョンと相互運用性があります。たとえば、Instant Client
12.2は、11.2、12.1、12.2のデータベースとの接続を可能にします。詳細については、
Support Doc ID 207303.1の相互運用性マトリックスに記載されています。Instant Clientには、多数のさまざまなOracleツールやテクノロジーが搭載されており、そのようなツールやテクノロジーの中には、さらなる制約が設けられているものもあることに留意してください。
Oracle Instant Clientはどこから入手できますか。
Oracle Instant Clientパッケージは
OTNからインストールできます。Oracle Linuxのユーザーは、
ULNか
らインストールできます。また、Oracle
Clientの完全なインストールにおいてインストール・オプションとして提供されています。Instant Clientは、各Oracle
Database Releaseと並行して利用可能になります。Apple macOSなどの複数のプラットフォームにもInstant
Clientパッケージがありますが、Oracle Databaseや完全なOracle Clientはありません。
Oracle Instant Clientの価格を教えてください。
Oracle Instant Clientは、どなたでもOTNから無料で入手して、開発環境や本番環境で使用できます。ただし、Oracle Supportにお問い合わせができるのは、標準サポート契約を結んでいるお客様に限られます。
Oracle Instant Clientは再配布できますか。
Oracle Instant Clientは、ライセンスに関しては、無料でバンドルおよび再配布が可能です。企業は社内でInstant
Clientを再配布できます。ただし、Oracle SupportにInstant
Clientのお問い合わせができるのは、標準サポート契約を結んでいるお客様に限られます。詳細については、
Oracle Technology Network License Agreementを参照してください。
Oracle Instant Clientモードで接続文字列を指定する方法を教えてください。
(tnsnames.oraやsqlnet.oraなどの構成ファイルを検索するために)ORACLE_HOMEを使用する必要がないOracle Netネーミング・メソッドはすべて、Oracle Instant Clientモードで機能します。
CおよびC++ベースのアプリケーションでは、接続文字列を以下の形式で指定できます。
Easy Connect文字列の形式:
[//]host_name[:port][/service_name][:server_type][/instance_name]
例:
localhost/pdborcl
Oracle Netキーワード値ペアとして指定する場合。例:
"(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=dlsun242)
(PORT=5521))
(CONNECT_DATA=(SERVICE_NAME=bjava21)))"
構成ファイルの検索にTNS_ADMINが必要なネーミング・メソッドは、TNS_ADMIN環境変数が設定されている場合は引き続き機能します。
TNS_ADMIN
環境変数が設定されていない場合は、inst1などのTNSNAMESエントリなどが使用されるとともに、ORACLE_HOME変数が設定される必要が
あります。構成ファイルはORACLE_HOME/network/adminディレクトリに置かれます。
この場合、ORACLE_HOME変数は、Oracle Net構成ファイルを検索するためだけに使用されます。Client Code Libraryの他のコンポーネント(OCI、NLSなど)は、ORACLE_HOMEの値を使用しないことに留意してください。
Bequeath
アダプタまたは空の接続文字列はサポートされていません。ただし、空の接続文字列を使用する代わりに、UNIXではTWO_TASK環境変数を、
WindowsではLOCAL変数を、tnsnames.oraエントリまたはOracle
Netキーワード値ペアのいずれかに設定する方法もあります。TWO_TASKまたはLOCALがtnsnames.oraエントリに設定されている場
合、tnsnames.oraファイルはTNS_ADMINまたはORACLE_HOMEの設定によってロードできなければなりません。
Oracle Instant ClientはOracle Namesと連携しますか。
いいえ。Oracle Instant ClientはOracle Namesと連携しません。Instant Clientは古いデータベースとの後方互換性がありますが、Oracle Namesを含む非推奨の機能を現在はサポートしていません。
Support Doc ID 277948.1を参照してください。
Oracle Instant ClientはどのようにORACLE_HOMEとやり取りしますか。
ライブラリ・ローディング・パスが、ORACLE_HOMEのライブラリ・ディレクトリの上位にOracle Instant
Clientファイルを含むディレクトリ(instantclientディレクトリなど)を持つ限り、アプリケーションはInstant
Clientモードで機能し、ORACLE_HOMEのライブラリは使用されません。
Oracle環境変数は動作がどのように変わりますか。
環境変数のORA_NLS33、ORA_NLS32、ORA_NLSは、Oracle Instant
Clientモードでは無視されます。ORA_TZFILE環境変数は、完全なパスではなく、サイズの大きいタイムゾーン・ファイルの名前に設定する必要
があります。その他の環境変数(NLS_LANGなど)はすべて、動作に変更はありません。
エラーが発生し、"message file not found"というメッセージが表示されるのはなぜですか。
一部のOracleアプリケーションは現在、Oracle Instant Clientの下で操作を認証しています。認証が完了すると、メッセージは表示されなくなります。
アプリケーションをOracle Instant Clientとともに実行すると、仮想メモリーのフットプリントが増加するのはなぜですか。
Oracle Instant
Clientライブラリは、ファイル・サイズと同じ大きさの仮想アドレス空間を占有します。ただし、ライブラリから頻繁に使用されるエラー・メッセージの
み、物理メモリを占有します。ほとんどの場合、物理メモリのロードは、大規模な仮想アドレス空間が予約されるにもかかわらず、数キロバイトです。
Oracle Instant ClientはWindowsでレジストリ設定をどのように使用しますか。
Oracle Instant Client向けの特別な設定により、すべてのユーザーに対して、またはユーザーごとに、アプリケーションをレジストリで設定できます。
1.レジストリ・エディタ(regeditまたはregedt32)を使用して、グローバル設定ではHKEY_LOCAL_MACHINE\
SOFTWAREに、(または、具体的な各ユーザーではHKEY_LOCAL_MACHINE\HKEY_CURRENT_USER\SOFTWARE
に)移動します。
2.ORACLEグループ鍵を追加します。
3.希望するそれぞれの設定ごとに(NLS_LANG、TNS_ADMINなど)、ORACLE鍵内に新しい文字列値を追加します。ディレクトリである鍵には、完全かつ適切なパスを使用します。
Oracle Instant Clientは、既存のORACLE_HOMEベースのクライアント・インストールとどのようにやり取りしますか。
Oracle Clientがすでにマシンにインストールされている場合は、以下を推奨します。
1.ファイルが上書きされたり、インストールが一貫性のない状態になることを避けるために、Oracle Instant
ClientライブラリをORACLE_HOME/libまたはORACLE_HOME/binディレクトリに解凍もしくはコピーしてはなりません。通常
は、Instant Clientライブラリを別のクリーンなディレクトリに置くことが推奨されます。
2.Instant
ClientディレクトリとOracle
Clientディレクトリの両方を、順序にかかわらず、ライブラリ・パスに入れてはなりません。ライブラリ・パス(プラットフォームに応じて
LD_LIBRARY_PATHまたはPATH)には、両方ではなく、使用するバージョンに基づきどちらか一方を使用してください。
"tnsnames.ora"や"sqlnet.ora"などのOracle Netファイルが、確実にOracle Instant Clientで使用されるにはどうすればよいですか。
TNS_ADMIN環境変数またはレジストリ・エントリを、ファイルを含むディレクトリに設定すると、"tnsnames.ora"、
"sqlnet.ora"、"oraaccess.xml"などのファイルが、Oracle Instant
Clientによって検索されるようになります。このとき、完全なディレクトリ・パスを使用し、ファイル名は含めません。代わりに、Oracle
Netファイル用にInstant
Clientディレクトリの下に"network/admin"サブディレクトリを作成することもできます。これはデフォルトのロケーションのため、
TNS_ADMIN変数は不要です。
LDAPはOracle Instant Clientとともに使用できますか。
はい。LDAPは、10.1.0.4の時点のOracle Instant Clientとともに使用できます。
Pro*CはOracle Instant Clientでサポートされていますか。
はい。Pro*Cは、Unixプラットフォーム上でのOracle Instant Client 10.2.0.xとの実行がサポートされています。Windows上でのInstant Clientとの実行は現在サポートされていません。
Oracle Instant Clientのホームページに戻る。