2 OCI Instant ClientおよびInstant Client Light

OCI Instant ClientおよびInstant Client Lightについて説明します

この章のトピックは、次のとおりです:

OCI Instant Clientについて

Instant Client機能により、クライアント・マシン上でOracleホームの必要がなくなることで、OCI、OCCI、ODBCおよびJDBC OCIに基づくカスタマ・アプリケーションのデプロイが簡略化されます。

Instant Clientモードで実行されるOCIアプリケーションの記憶領域の所要量は、クライアント側の完全インストールで実行される同じアプリケーションに比べて、大幅に少なくなります。Instant Client共有ライブラリは、クライアント側の完全インストールのディスク領域のうち、4分の1のみを使用します。Instant Clientは、インストールも簡単です。

Instant Clientを使用するのはなぜか。

  • インストール作業では、少数のファイルをコピーするか、Linux RPMパッケージなどのパッケージをインストールします。

  • Oracle Databaseのクライアント側で必要なファイル数およびディスク領域の合計が、大幅に少なくなります。

  • Instant Clientを使用してデプロイされたアプリケーションでは、機能またはパフォーマンスに損失がありません。

  • 独立したソフトウェア・ベンダーは、アプリケーションを簡単にパッケージ化できます。

READMEは、Instant Clientインストールに付属しています。このファイルには、Instant Clientが生成されたバージョン、日時およびオペレーティング・システムが記載されています。

次の表に、OCIアプリケーションのデプロイに必要なOracle Databaseのクライアント側ファイルを示します。

表2-1 LinuxおよびUNIX用のOCI Instant Client共有ライブラリ

LinuxおよびUNIX LinuxおよびUNIXでの説明

libclntsh.so.12.1

libclntshcore.so.12.1

クライアント・コード・ライブラリ

libociei.so脚注1

OCI Instant Clientデータの共有ライブラリ

libnnz12.so

セキュリティ・ライブラリ

libons.so

ONSライブラリ

脚注 1

Instant Clientを使用するには、ライブラリlibclntsh.so.12.1、libclntshcore.so.12.1およびlibociei.soが同じディレクトリ内に存在する必要があります。

表2-2 Microsoft Windows用のOCI Instant Client共有ライブラリ

Microsoft Windows Microsoft Windowsでの説明

oci.dll

アプリケーションがリンクする転送機能

oraociei12.dll

データとコード

orannzsbb12.dll

セキュリティ・ライブラリ

oraons.dll

OCIによって内部的に使用されるONSライブラリ

oci.sym

oraociei12.sym

orannzsbb12.sym

シンボル表

Microsoft Windowsでは、ダイナミック・リンク・ライブラリ(DLL)ごとに.symファイルが提供されます。.symファイルがDLLと同じ場所にある場合、Microsoft WindowsでOCIに障害が発生した際に、関数名を含むスタック・トレースが生成されます。

関連項目:

OCIでの障害診断

LinuxおよびUNIX用のOCI Instant Client Light共有ライブラリ 表2-3

Microsoft Windows用のOCI Instant Client Light共有ライブラリ 表2-4

この表では、Oracle Database 12cリリース2 (12.2)のライブラリ名を使用しています。

OCI Instant ClientのインストールまたはLinux RPMパッケージのインストール

Oracle Instant Clientは、2つの方法でインストールできます。

Instant Clientライブラリは、Oracle Universal InstallerからInstant Clientオプションを選択するか、次のOracle Technology NetworkのWebサイトのOCIページからInstant Clientライブラリをダウンロードしてインストールするかのいずれかでインストールできます。

http://www.oracle.com/technetwork/database/features/instant-client/

Oracle Technology NetworkのWebサイトからInstant Clientライブラリをダウンロードしてインストールする手順、またはOracle Universal InstallerからInstant Clientをインストールする手順は、次のとおりです

Linux、UNIXおよびWindows環境では、次のステップを使用します。

  1. Oracle Technology NetworkからInstant Client共有ライブラリをダウンロードして、Oracle Database 12cリリース2 (12.2)の空のディレクトリ(instantclient_12_2など)にインストールします。基本パッケージを選択します。

  2. Oracle Universal Installerの場合は、Oracle Universal Installerを起動してInstant Clientオプションを選択し、Instant Client共有ライブラリをOracle Database 12cリリース2 (12.2)の空のディレクトリ(instantclient_12_2など)にインストールします。

  3. オペレーティング・システム共有ライブラリ・パス環境変数を、ステップ1のディレクトリに設定します。たとえば、LinuxまたはUNIXでは、LD_LIBRARY_PATHinstantclient_12_2ディレクトリに設定します。Windowsでは、PATHinstantclient_12_2ディレクトリに設定します。

  4. 必要ならば、NLS_LANG環境変数を設定して、クライアント・アプリケーションとそのアプリケーションでオープンされたデータベース接続で使用される言語と地域、およびクライアントの文字セット(クライアント・プログラムで入力または表示されるデータ用の文字セット)を指定します。NLS_LANGは、UNIXプラットフォームでは環境変数として設定され、Windowsプラットフォームではレジストリで設定されます。NLS_LANG環境変数設定の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。

  5. (オプション)。sqlnet.oratnsnames.oraまたはoraaccess.xmlを使用する場合、TNS_ADMIN環境変数を設定します。

前述のステップを完了すると、OCIアプリケーションを実行できるようになります。

オペレーティング・システムのライブラリ・パス変数によってOCI共有ライブラリにアクセスできる場合、OCIアプリケーションは、Instant Clientを使用します。この方法では、Oracleホームへの依存性はなく、Oracleホームに指定された他のコードおよびデータ・ファイルは、OCIでは不要です(後で説明するtnsnames.oraファイルを除きます)。

クライアントの完全インストールを行った場合(Oracle Universal InstallerでAdminオプションを選択)、Instant Client共有ライブラリもインストールされます。クライアントの完全インストールにおけるInstant Client共有ライブラリの場所は、次のとおりです。

LinuxまたはUNIXの場合:

libociei.soライブラリは、$ORACLE_HOME/instantclientにあります。

libclntsh.so.12.1libclntshcore.so.12.1およびlibnnz12.soは、$ORACLE_HOME/libにあります。

Windowsの場合:

oraociei12.dllライブラリは、ORACLE_HOME¥instantclientにあります。

oci.dllociw32.dllおよびorannzsbb12.dllは、ORACLE_HOME¥binにあります。

Instant Clientを使用してOCIアプリケーションを実行できるようするには、前述のライブラリを別のディレクトリにコピーして、オペレーティング・システム共有ライブラリ・パスをこのディレクトリがある場所に設定します。

ノート:

すべてのライブラリを同じOracleホームからコピーして、同じディレクトリに配置する必要があります。Instant Clientライブラリへのsymlinkの関連付けは、ライブラリの物理的な関連付けに代わるものではありません。

オペレーティング・システムのLibrary Path変数に存在するOracleライブラリは1セットのみである必要があります。つまり、Instant Clientライブラリを含むディレクトリが複数ある場合、それらのディレクトリの1つのみをオペレーティング・システムのLibrary Path上に記載する必要があります。

同様に、Oracleホームベースのインストールを同じシステムに行う場合、オペレーティング・システムのLibrary PathにORACLE_HOME/libとInstant Clientディレクトリの両方を記載しないでください(Library Path上での順序も無関係です)。つまり、オペレーティング・システムのLibrary Path変数には、ORACLE_HOME/libディレクトリ(非Instant Clientモードで操作する場合)またはInstant Clientディレクトリ(Instant Clientモードで操作する場合)のいずれかを記載します。

OCCIやJDBC OCIなどのその他の機能を有効にするには、いくつかの追加ファイルをコピーする必要があります。OCCIを有効にするには、OCCIライブラリ(LinuxまたはUNIXではlibocci.so.12.1、Windowsではoraocci12.dll)をInstant Clientディレクトリにインストールする必要があります。JDBC OCIドライバの場合、3つのOCI共有ライブラリ以外に、OCI JDBCライブラリ(LinuxまたはUNIXではlibocijdbc12.so、Windowsではocijdbc12.dllなど)もダウンロードする必要があります。すべてのライブラリをInstant Clientディレクトリに配置します。

ノート:

Sparc64などのハイブリッド・プラットフォームでは、JDBC OCIドライバをInstant Clientモードで動作させるために、libociei.soライブラリをORACLE_HOME/instantclient32ディレクトリからInstant Clientディレクトリにコピーします。JDBC OCI Instant Clientに必要なその他すべてのSparc64ライブラリを、ORACLE_HOME/lib32ディレクトリからInstant Clientディレクトリにコピーします。

ノート:

LinuxおよびUNIXシステムでは、「データ共有ライブラリ、zipおよびRPMファイルの再生成」の説明に従って、OCIとOCCI、JDBCおよびSQL*Plus用のInstant Client zipおよびRPMファイルを生成できます。前述の説明に従って、zipおよびRPMファイルをターゲット・システムにコピーして解凍します。再生成されたInstant Clientバイナリには、再生成を行ったOracle Client AdministratorホームでインストールされたInstant Clientファイルのみが含まれます。RPMファイルをインストールするには、次の手順に従います。
  1. suを実行し、スーパーユーザーのパスワードを入力して、rootになります。

  2. インストール先のディレクトリに移動します。

  3. 以前のすべてのインストール内容をアンインストールします。

    # rpm -e package_name
  4. 各パッケージをインストールします。

    # rpm -ivh package-name.rpm

    または、各パッケージをアップグレードします。

    # rpm -Uvh package-name.rpm
  5. ディスク領域を節約する場合は、.rpmファイルを削除します。

  6. rootシェルを終了します。再起動の必要はありません。

Instant Clientを使用する場合

Instant Clientは、デプロイメントの選択対象であり、本番アプリケーションの実行に使用できます。

一般的に、Instant Clientがクライアント側の動作専用でないかぎり、Instant Clientを使用して実行されているアプリケーションではすべてのOCI機能を使用できます。したがって、サーバー側の外部プロシージャは、Instant Clientライブラリを使用できません。

開発には、Instant Client SDKを使用することもできます。

LinuxまたはUNIXでのInstant Client共有ライブラリへのパッチの適用について

Instant Clientはデプロイメント用の機能であるため、OCIアプリケーションの実行に必要なファイルの数およびサイズ(クライアント・フットプリント)が減らされました。

したがって、Instant Client共有ライブラリにパッチを適用するために必要なファイルは、Instant Clientのデプロイメントですべて入手できるわけではありません。パッチの適用には、Oracleホームをベースとした完全なクライアント・インストールが必要です。パッチを適用するには、opatchユーティリティを使用します。

Oracleホーム環境にパッチを適用した後、「OCI Instant ClientのインストールまたはLinux RPMパッケージのインストール」の説明に従って、「OCI Instant Clientについて」に記載されているファイルをInstant Clientディレクトリにコピーします。

個々のファイルをコピーするかわりに、「データ共有ライブラリ、zipおよびRPMファイルの再生成」の説明に従って、OCIとOCCI、JDBCおよびSQL*Plus用のInstant Client zipおよびRPMファイルを生成できます。次に、「OCI Instant ClientのインストールまたはLinux RPMパッケージのインストール」の説明に従って、zipおよびRPMファイルをターゲット・システムにコピーして解凍します。

opatchユーティリティによって、ORACLE_HOMEインストールのパッチ適用情報がlibclntsh.soに格納されます。この情報を取り出すには、次のコマンドを使用します。

genezi -v

Instant Clientのデプロイメント・システムにgeneziユーティリティがない場合、ORACLE_HOME/binディレクトリからそれをコピーできます。

ノート:

opatchユーティリティは、Windowsでは使用できません。

データ共有ライブラリ、zipおよびRPMファイルの再生成

データ共有ライブラリとzipおよびRPMファイルを再生成するプロセスが変わりました。

データ共有ライブラリとzipおよびRPMファイルを再生成するプロセスは、Oracle Database 12cリリース1 (12.1)で変更されました。データ共有ライブラリ、zipおよびRPMファイルを作成するために、別々のMakefileターゲットが個々にまたは一度に使用されます。以前のリリースでは、データ共有ライブラリ、zipおよびRPMファイルの作成のために、1つのターゲットilibocieiが提供されました。ilibocieiでは、zipおよびRPMファイルのみが作成されるようになりました。データ共有ライブラリの再生成には、コンパイラとリンカーの両方が必要で、これらはすべてのインストールで使用可能というわけではありません。後続の各項では、データ共有ライブラリ、zipおよびRPMファイルを再生成するために使用するMakefileターゲットを示します。

ノート:

再生成されたInstant Clientバイナリには、再生成を行ったOracle Client AdministratorホームでインストールされたInstant Clientファイルのみが含まれます。そのため、再生成環境に存在するエラー・メッセージ、文字セット・エンコーディングおよびタイムゾーン・ファイルは、データ共有ライブラリにパッケージされているもののみです。エラー・メッセージ、文字セット・エンコーディングおよびタイムゾーン・ファイルは、Oracle Client Administratorホームのインストールで選択された各国語に依存します。

データ共有ライブラリ、zipおよびRPMファイルの再生成は、Windowsプラットフォームでは使用できません。

データ共有ライブラリlibociei.soの再生成

OCI Instant Clientデータ共有ライブラリ(libociei.so)は、ORACLE_HOMEの管理者インストールで次のコマンドを使用することで再生成できます。

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk igenlibociei

新しく再生成されたlibociei.soは、ORACLE_HOME/instantclientディレクトリに置かれます。同じディレクトリにある元の既存のlibociei.soは、libociei.so0に名前が変更されます。

データ共有ライブラリlibociicus.soの再生成

Instant Client Lightデータ共有ライブラリ(libociicus.so)を再生成するには、次のコマンドを使用します。

mkdir -p $ORACLE_HOME/rdbms/install/instantclient/light
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk igenlibociicus

新しく再生成されたlibociicus.soは、ORACLE_HOME/instantclient/lightディレクトリに置かれます。同じディレクトリにある元の既存のlibociicus.soは、libociicus.so0に名前が変更されます。

データ共有ライブラリlibociei.soおよびlibociicus.soの1ステップでの再生成

データ共有ライブラリlibociei.soとlibociicus.soを再生成するには、次のコマンドを使用します。

mkdir -p $ORACLE_HOME/rdbms/install/instantclient/light
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk igenliboci

新しく再生成されたlibociei.soは、ORACLE_HOME/instantclientディレクトリに置かれます。同じディレクトリにある元の既存のlibociei.soは、libociei.so0に名前が変更されます。

新しく再生成されたlibociicus.soは、ORACLE_HOME/instantclient/lightディレクトリに置かれます。同じディレクトリにある元の既存のlibociicus.soは、libociicus.so0に名前が変更されます。

基本パッケージ用のzipおよびRPMファイルの再生成

基本パッケージ用にzipおよびRPMファイルを再生成するには、次のコマンドを使用します。

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk ic_basic_zip
基本軽量パッケージ用のzipおよびRPMファイルの再生成

基本軽量パッケージ用にzipおよびRPMファイルを再生成するには、次のコマンドを使用します。

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk ic_basiclite_zip
JDBCパッケージ用のzipおよびRPMファイルの再生成

JDBCパッケージ用にzipおよびRPMファイルを再生成するには、次のコマンドを使用します。

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk ic_jdbc_zip
ODBCパッケージ用のzipおよびRPMファイルの再生成

ODBCパッケージ用にzipおよびRPMファイルを再生成するには、次のコマンドを使用します。

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk ic_odbc_zip
SQL*Plusパッケージ用のzipおよびRPMファイルの再生成

SQL*Plusパッケージ用にzipおよびRPMファイルを再生成するには、次のコマンドを使用します。

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk ic_sqlplus_zip
ツール・パッケージ用のzipおよびRPMファイルの再生成

ツール・パッケージ用にzipおよびRPMファイルを再生成するには、次のコマンドを使用します。

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk ic_tools_zip
全パッケージ用のzipおよびRPMファイルの再生成

全パッケージ用にzipおよびRPMファイルを再生成するには、次のコマンドを使用します。

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk ilibociei

新しいzipおよびRPMファイルが次のディレクトリに生成されます。

$ORACLE_HOME/rdbms/install/instantclient

データ共有ライブラリ、zipおよびRPMファイルの再生成は、Windowsプラットフォームでは使用できません。

OCI Instant Clientのデータベース接続文字列

OCI Instant Clientからは、通常のSQLクライアントで可能なすべての方法で、リモート・データベースに接続できます。

ただし、Instant ClientにはOracleホーム環境およびディレクトリ構造がないため、一部のデータベース・ネーミング・メソッドには追加の構成ステップが必要です。

tnsnames.orasqlnet.oraoraaccess.xmlなどの構成ファイルを指定するためにORACLE_BASE_HOMEORACLE_HOMEまたはTNS_ADMINを使用する必要のないOracle Netネーミング・メソッドは、すべてInstant Clientモードで動作します。特に、OCIServerAttach()コールのconnect_identifierは、次の形式で指定できます。

  • SQL接続URL文字列のフォームは、次のようになります。

    username/password@host[:port][/service name][:server][/instance_name]
  • フォームのtnsnames.ora構成ファイル・エントリのローカル・ネーミング・パラメータ:

    net_service_name= 
     (DESCRIPTION= 
    (ADDRESS=(protocol_address_information))
       (CONNECT_DATA= 
         (SERVICE_NAME=service_name))) 
  • フォームのOracle Net接続記述子:

    "(DESCRIPTION=(ADDRESS=(PROTOCOL=protocol-name) (HOST=host-name) (PORT=port-number))
    (CONNECT_DATA=(SERVICE_NAME=service-name)))"
    
  • サイトがLDAPサーバー・ディレクトリ用に構成されているディレクトリ・ネーミングを通じて解決される接続名。

tnsnames.oraなどのネーミング・メソッドやディレクトリ・ネーミングを使用するには、TNS_ADMIN環境変数を設定する必要があります。

関連項目:

接続記述子の詳細は、『Oracle Database Net Services管理者ガイド』の「ネーミング・メソッドの構成」を参照してください

TNS_ADMIN環境変数が設定されていない場合に、inst1などのtnsnames.oraエントリを使用するときは、ORACLE_HOME変数を設定する必要があります。また、構成ファイルは$ORACLE_HOME/network/adminディレクトリに存在する必要があります。

この場合、ORACLE_HOME変数は、Oracle Net構成ファイルの検索のみに使用され、クライアント・コード・ライブラリの他のコンポーネント(OCI、NLSなど)は、ORACLE_HOMEの値を使用しません。そのため、TNS_ADMIN環境変数を設定してtnsnames.oraファイルの場所を特定する方が簡単で、推奨されます。

OCIServerAttach()コールで接続文字列としてNULL文字列""を使用する場合、TWO_TASK環境変数をconnect_identifierに設定できます。Windowsオペレーティング・システムでは、TWO_TASKのかわりにLOCAL環境変数を使用します。

同様に、SQL*PlusなどのOCIコマンド・ライン・アプリケーションには、TWO_TASK (WindowsではLOCAL)環境変数をconnect_identifierに設定できます。この環境変数には、通常の接続文字列上で'@'より右側であれば、任意の値を指定できます。

この項には次のトピックが含まれます: Instant Client接続識別子の例

Instant Client接続識別子の例

SQL*PlusをInstant Clientモードで使用するには、接続識別子を次のように指定します。

Oracle Databaseのlistener.oraファイルに次の記述が含まれる場合:

LISTENER = (ADDRESS_LIST=
 (ADDRESS=(PROTOCOL=tcp)(HOST=server6)(PORT=1573))
)
 
SID_LIST_LISTENER = (SID_LIST= 
 (SID_DESC=(SID_NAME=rdbms3)(GLOBAL_DBNAME=rdbms3.server6.us.alchemy.com)
(ORACLE_HOME=/home/dba/rdbms3/oracle))
)

SQL*Plus接続識別子は次のようになります。

"server6:1573/rdbms3.server6.us.alchemy.com"

接続識別子は次のように指定することもできます。

"(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=server6)(PORT=1573))(CONNECT_DATA=
(SERVICE_NAME=rdbms3.server6.us.alchemy.com)))"

または、TWO_TASK環境変数を任意の以前の接続識別子に設定し、接続識別子を新規に指定せずに接続することもできます。たとえば、次のようにします。

export TWO_TASK=//server6:1573/rdbms3.server6.us.alchemy.com

TWO_TASK環境変数を次のように指定することもできます。

export TWO_TASK=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=server6)(PORT=1573))
(CONNECT_DATA=(SERVICE_NAME=rdbms3.server6.us.alchemy.com)))

その後、空の接続識別子でSQL*Plusを起動できます(パスワードの入力を求められます)。

sqlplus user

接続記述子は、tnsnames.oraファイルにも指定できます。たとえば、tnsnames.oraファイルに次の接続記述子が記載され、

conn_str = (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=server6)(PORT=1573))(CONNECT_DATA=
(SERVICE_NAME=rdbms3.server6.us.alchemy.com)))

tnsnames.oraファイルが/home/webuser/instantclientディレクトリにある場合、変数TNS_ADMIN (WindowsではLOCAL)を次のように設定できます。

export TNS_ADMIN=/home/webuser/instantclient

その後、接続識別子conn_strを使用して、SQL*Plusを起動するか、OCI接続を行うことができます。

ノート:

TNS_ADMINには、tnsnames.oraファイルを配置するディレクトリを指定します。TNS_ADMINtnsnames.oraファイルのフルパスではありません。

前述のtnsnames.oraファイルがインストールが行われたOracleホームの、/network/server6/home/dba/oracle/network/adminディレクトリにある場合、ORACLE_HOME環境変数を次のように設定して、前と同様にSQL*Plusを識別子conn_strを使用して起動できます。

export ORACLE_HOME=/network/server6/home/dba/oracle

最後に、tnsnames.oraTNS_ADMINまたはORACLE_HOMEにあれば、TWO_TASK環境変数を次のように設定して、接続識別子なしでSQL*Plusを起動できます。

export TWO_TASK=conn_str

OCI Instant Clientの環境変数

ORACLE_HOME環境変数は、NLS、COREおよびエラー・メッセージ・ファイルの場所を決定しなくなりました。OCI専用アプリケーションでは、ORACLE_HOMEを設定しないでください。ただし、設定されていても、OCIには影響はありません。OCIは、データ共有ライブラリからデータを常に取得します。データ共有ライブラリが使用できない場合のみORACLE_HOMEが使用され、クライアントの完全インストールとみなされます。ORACLE_HOMEを設定する必要がなくても、設定する場合には、ディレクトリを識別する有効なオペレーティング・システム・パス名に設定する必要があります。

動的ユーザー・コールバック・ライブラリをロードする場合は、このマニュアルで指定されているように、ORACLE_HOME/lib (WindowsではORACLE_HOME\bin)にコールバック・パッケージが存在する必要があります。この場合、ORACLE_HOMEを設定します。

Instant Clientモードでは、環境変数ORA_NLS10およびORA_NLS_PROFILE33は無視されます。

Oracle Database 12cリリース2 (12.2)以上では、Instant Clientライブラリを使用する場合、Instant Clientは、ORA_TZFILE環境変数を使用して、ファイル・システムからタイム・ゾーン・ファイルを読み取ります(この環境変数が設定されている場合)。それ以外で、ORA_TZFILE変数が設定されていない場合、データ共有ライブラリから、サイズの大きいデフォルトのtimezlrg_n.datファイルが使用されます。サイズの小さいtimezone_n.datファイルをデータ共有ライブラリから使用する場合は、絶対または相対パス名を付けずに、このファイルの名前をORA_TZFILE環境変数に設定します。ファイルは、Instant Clientディレクトリのサブディレクトリoracore/zoneinfo (UNIX/LINUXの場合)またはoracore\zoneinfo (Microsoft Windowsの場合)にコピーする必要があります。geneziユーティリティを-vオプション付きで使用して、タイム・ゾーン・ファイルおよび場所が有効であることを確認するか、SQL*Plusを実行します。

LinuxまたはUNIXの場合:

export ORA_TZFILE=timezone_n.dat

Windowsの場合:

set ORA_TZFILE=timezone_n.dat

これらの場合、nはタイムゾーン・データ・ファイルのバージョン番号です。

oracoeiまたはoraociicus DLLが存在する場所(通常はinstantclient_12_2ディレクトリ)に必ずサブディレクトリoracore/zoneinfo (UNIX/LINUXの場合)またはサブディレクトリoracore\zoneinfo (Microsoft Windowsの場合)を作成し、そのディレクトリにtimezone_n.datファイルをコピーします。

Instant Clientデータ共有ライブラリにパッケージされている大小のタイム・ゾーン・ファイルのバージョンを特定するには、次のコマンドを入力して、geneziユーティリティを実行します。

genezi -v

(データ共有ライブラリが使用できないために) OCIがInstant Clientモードで動作していない場合、以前のOracle Databaseのリリースと同様に、ORA_TZFILE変数(設定されている場合)は、完全なパス名を付けます。

TNSNAMESエントリが使用されている場合は、前述したように、TNS_ADMINディレクトリにはTNSNAMES構成ファイルを含める必要があります。TNS_ADMINが設定されていない場合は、ORACLE_HOME/network/adminディレクトリにOracle Net Services構成ファイルを含める必要があります。

Instant Client SDK

ソフトウェア開発キット(SDK)は、アプリケーションを作成できる開発ツールのセットで、次のOracle Technology Network WebサイトのInstant ClientのリンクURLからダウンロードできます。

http://www.oracle.com/technetwork/database/features/instant-client/
  • Instant Client SDKパッケージには、CおよびC++のヘッダー・ファイルと、Instant Client環境でOCIおよびOCCIアプリケーションを開発するためのMakefileが含まれています。開発したアプリケーションは、あらゆるクライアント環境にデプロイできます。

  • SDKには、CおよびC++のデモ・プログラムが含まれています。

  • Windowsの場合、OCIまたはOCCIアプリケーションをリンクするために必要なライブラリも含まれています。デモをビルドするための、Make.batが提供されています。

  • UNIXまたはLinuxの場合、デモをビルドするにはmakefile demo.mkを指定します。アプリケーションをリンクする前に、LD_LIBRARY_PATHinstantclient_12_2ディレクトリを必ず定義します。OCIおよびOCCIプログラムでは、instantclient_12_2ディレクトリにlibclntsh.soおよびlibocci.soシンボリック・リンクを配置する必要があります。demo.mk makefileは、リンクのステップの前にこれらを作成します。これらのシンボリック・リンクは、シェルで作成することもできます。

    cd instantclient_12_2
    ln -s libclntsh.so.12.2 libclntsh.so
    ln -s libocci.so.12.2 libocci.so
    
  • また、SDKには、アプリケーション・ヘッダー・ファイルを生成するための、Object Type Translator (OTT)ユーティリティとそのクラスが含まれます。

Instant Client Light (English)について

Instant Client Light (English)バージョンについて説明します。

Instant ClientのInstant Client Light (English)バージョンでは、クライアントのインストールに必要なディスク領域が削減されています。英語以外の言語のエラー・メッセージ・ファイルを削除し、サポートされる文字セット定義を約250の中からわずかな数のみ残すことで、ライブラリのサイズが削減されました。

このInstant Client Lightバージョンは、US7ASCII、WE8DEC、WE8ISO8859P1、WE8MSWIN1252またはUnicode文字セットのいずれかを使用するアプリケーション向けです。NLS_LANG設定のLANGUAGEおよびTERRITORYフィールドに制限がないため、Instant Client Lightはあらゆる言語および地域設定で動作します。Instant Client Lightでは英語のエラー・メッセージのみ提供されているため、NLS_LANGAMERICAN以外の言語に設定されている場合でも、Net接続エラーなどのクライアント側で生成されたエラー・メッセージは常に英語でレポートされます。データベース・インスタンスのOracleホームに適切な翻訳済メッセージ・ファイルがインストールされている場合、SQL文の構文エラーなどのデータベース側で生成されたエラー・メッセージは、選択した言語となります。

グローバリゼーション設定

Instant Client Lightでサポートされる文字セットについて説明します。

Instant Client Lightは、次のクライアント文字セットをサポートします。

シングルバイト

  • US7ASCII

  • WE8DEC

  • WE8MSWIN1252

  • WE8ISO8859P1

Unicode

  • UTF8

  • AL16UTF16

  • AL32UTF8

Instant Client Lightは、次のいずれかのデータベース文字セットを使用するデータベースに接続できます。

  • US7ASCII

  • WE8DEC

  • WE8MSWIN1252

  • WE8ISO8859P1

  • WE8EBCDIC37C

  • WE8EBCDIC1047

  • UTF8

  • AL32UTF8

Instant Client Lightは、前述のリストにない文字セットがクライアントまたはデータベースの文字セットとして使用された場合に、エラーを戻します。

Instant Client Lightは、OCI_UTF16モードで作成されたOCI環境ハンドルを使用しても動作できます。

関連項目:

各国語サポート(NLS)の設定の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください

Instant Client Lightの動作

OCIアプリケーションがInstant Client Lightモードで動作する状況について説明します。

OCIアプリケーションは、デフォルトで、OCIデータ共有ライブラリlibociei.so (WindowsではOraociei12.dll)をLD_LIBRARY_PATH (WindowsではPATH)から検索し、アプリケーションがInstant Clientモードで動作するかどうかを判断します。このライブラリが見つからない場合、OCIではInstant Client Lightデータ共有ライブラリ(表2-3および表2-4を参照) libociicus.so (WindowsではOraociicus12.dll)のロードを試みます。Instant Client Lightのライブラリが見つかった場合、アプリケーションはInstant Client Lightモードで動作します。それ以外の場合は、Oracleホームでの完全インストールが想定されます。

表2-3 LinuxおよびUNIX用のOCI Instant Client Light共有ライブラリ

LinuxおよびUNIX LinuxおよびUNIXでの説明

libclntsh.so.12.1

libclntshcore.so.12.1

クライアント・コード・ライブラリ

libociicus.so

OCI Instant Client Lightデータの共有ライブラリ

libnnz12.so

セキュリティ・ライブラリ

表2-4 Microsoft Windows用のOCI Instant Client Light共有ライブラリ

Microsoft Windows Microsoft Windowsでの説明

oci.dll

アプリケーションがリンクする転送機能

oraociicus12.dll

データとコード

orannzsbb12.dll

セキュリティ・ライブラリ

oci.sym

oraociicus12.sym

orannzsbb12.sym

シンボル表

関連項目:

LinuxおよびUNIX用のOCI Instant Client共有ライブラリ 表2-1

Microsoft Windows用のOCI Instant Client共有ライブラリ 表2-2

Instant Client Lightのインストール

Instant Client Lightのインストールは、次のいずれかの方法で行うことができます。

  • Oracle Technology Network (OTN)からのインストール

    Oracle Technology Network WebサイトのInstant ClientページのURLは、次のとおりです。

    http://www.oracle.com/technetwork/database/features/instant-client/

    Instant Client Lightの場合、basiclite.zipパッケージを空のinstantclient_12_2ディレクトリにダウンロードし、解凍します。

  • Instant Client Administratorインストールからのインストール

    ORACLE_HOME/instantclient/lightサブディレクトリから、libociicus.so (Windowsではoraociicus12.dll)をコピーします。LD_LIBRARY_PATH (WindowsではPATH)のInstant Clientディレクトリに、サイズの大きいOCI Instant Clientデータ共有ライブラリlibociei.so (Windowsではoraociei12.dll)のかわりに、Instant Client Lightデータ共有ライブラリlibociicus.so (Windowsではoraociicus12.dll)を格納します。

  • Oracle Universal Installerインストールからのインストール

    Oracle Universal InstallerでInstant Clientオプションを選択した場合、libociei.so (Windowsではoraociei12.dll)はインストールのベース・ディレクトリにインストールされ、これらのファイルがLD_LIBRARY_PATH (WindowsではPATH)に置かれることになります。

    Instant Light Clientデータ共有ライブラリlibociicus.so (Windowsではoraociicus12.dll)は、ベース・ディレクトリのlightサブディレクトリにインストールされ、デフォルトでは無効です。したがって、Instant Client Lightモードを使用するには、OCIデータ共有ライブラリlibociei.so (WindowsではOraociei12.dll)を削除するか名前を変更し、Instant Client Lightのライブラリをその環境のlightサブディレクトリからベース・ディレクトリにコピーする必要があります。

    たとえば、Oracle Universal InstallerでInstant ClientをLD_LIBRARY_PATH (WindowsではPATH)のmy_oraic_12_2ディレクトリにインストールした場合、Instant Client Lightモードを使用するには、次のコマンド・シーケンスを実行します。

    cd my_oraic_12_2
    rm libociei.so
    mv light/libociicus.so .

    ノート:

    インストールに互換性のないバイナリが存在しないように、常に空のディレクトリにInstant Clientのファイルをコピーしインストールしてください。